This is an old revision of the document!


Entrées/sorties numériques

Tous les bus de l'AVR sont disponible à la fois en lecture et en écriture, si ils sont utilisées dans le mode logique par défaut entrées/sorties (I/O). Les bus de l'AVR sont reconnus sous forme de lettres à partir du début de l'alphabet: A, B, C etc. Certains AVR peuvent ne pas avoir de bus A, bien que, si le bus B existe. Chaque bus est un mot de 8 bits et chaque bit à généralement sa propre broche du micro-contrôleur correspondante. Les broches sont dénombrées avec des chiffres en partant de 0. Pour toutes les directions du bus, il y a deux registres séparés. En plus de ça, il y a un registre qui décide de la direction réelle du bus, où ma valeur du bit à 1 marque le bus comme une sortie puis en entrée lorsque la valeur est à 0. Tous ensemble, chaque bus a trois registres:

  • PORT - pour configurer la valeur de sortie du bus.
  • PIN - pour configurer la valeur d'entrée du bus.
  • DDR - pour configurer la direction du bus.

Example

Tâche: configurer les broches 0-3 du bus B en entrées, broches 4-7 en sorties, configurer la broche 5 en position haute et lire les valeur des broches 0-3 vers une variable. Le code C correspondant ressemble à ceci:

#include <avr/io.h>
 
int main()
{
	unsigned char x;
 
	// Pins 0-3 as inputs, 4-7 as outputs
	DDRB = 0xF0;
 
	// Set pin five as high
	PORTB |= (1 << PIN5);
 
	// Read the values from inputs 0-3
	x = PINB & 0x0F;
}

Dans cet exemple, les entrée sont utilisées dans le mode Hi-z (impédance haute). In essence, the input does not put practically any load on the source of the signal. Ce mode peut être nécessaire, si la broche est utilisée comme bus de données. Si la broche est utilisée pour un bouton, un interrupteur et n'importe quelle autre solution, dont l'entrée est reliée à la terre, il est conseillé d'utiliser une résistance pull-up avec l'entrée. Pour ce faire, le bit de sortie de la broche correspondante doit être configurée en position haute dans le mode d'entrée - cela à pour effet, une résistance est placée entre la tension d'alimentation et l'entrée, qui garde la tension d'entrée jusqu'à ce qu'elle soit abaissée par quelque chose. Le but d'une résistance pull-up est de pallier au flottement de l'entrée due à l'électricité statique ou tout autre interférence. Après le démarrage du contrôleur, tous les bus d'entrée/sortie sont configurés en mode impédance haute par défaut.

Usually, the pins on the IO bus are used for other peripherals as well, aside from the logical connections. If there is a need to use the alternate function of the pin, the appropriate IO pin mode can be found in the AVR's datasheet. For example to use an ADC channel as an input, the pin should be in input mode and to generate PWM signal, it should be in output mode. Some peripheral modules, on the other hand, select the IO pin mode by themselves.

fr/avr/io.1268235129.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0