Cours:CoursM2103 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 28 : Ligne 28 :
 
DDRA|=(1<<PA7)|(1<<PA6)|(1<<PA5)|(1<<PA4);
 
DDRA|=(1<<PA7)|(1<<PA6)|(1<<PA5)|(1<<PA4);
 
DDRA&=~((1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0));
 
DDRA&=~((1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0));
 +
 +
</source>
 +
 +
==Modifier l'état d'une sortie==
 +
 +
Il faut avoir déclarer {{Rouge|la broche en sortie, cf ci-dessus}} !!
 +
 +
{{Rouge|'''<big>Attention</big>'''}}, il vaut mieux mettre quques parenthèses en trop que pas assez !!
 +
 +
<source lang=cpp>
 +
...
 +
// mettre la broche PA2 à 1 :
 +
PORTA |= (1<<PA2);
 +
// mettre la broche PB3 à 0 :
 +
PORTB &=~ (1<<PB2);
 +
// changer l'état de la broche PC5 :
 +
PORTC ^=~ (1<<PC5);
 +
// mettre les broche PB2 et PB3 à 1 :
 +
PORTB |= ( (1<<PB2) | (1<<PB3) );
 +
// mettre les broche PC4 et PC6 à 0 :
 +
PORTB &=~ ( (1<<PC4) | (1<<PC6) );
  
 
</source>
 
</source>

Version du 29 janvier 2023 à 15:37

gestion des broches

Entrée/Sortie

broche Rôle Registre Code
PC5 Sortie DDRC DDRC |= (1<<PC5);
PD5 et PD7 Sortie DDRD DDRD |= (1<<PD5)|(1<<PD7);
PA3 Entrée DDRA DDRA &=~(1<<PA3);
PD0 et PD1 Entrée DDRD  DDRD &=~( (1<<PD0)|(1<<PD1));
// modifier la direction de toutes les broches d'un port
// ex : PA0,PA1,PA2,PA3 en entrées
// ex : PA4,PA5,PA6,PA7 en sortie

DDRA=0b11110000;
//ou
DDRA=0xF0;
//ou
DDRA=(1<<PA7)|(1<<PA6)|(1<<PA5)|(1<<PA4)|(0<<PA3)|(0<<PA2)|(0<<PA1)|(0<<PA0);
//ou
DDRA|=(1<<PA7)|(1<<PA6)|(1<<PA5)|(1<<PA4);
DDRA&=~((1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0));

Modifier l'état d'une sortie

Il faut avoir déclarer la broche en sortie, cf ci-dessus !!

Attention, il vaut mieux mettre quques parenthèses en trop que pas assez !!

...
// mettre la broche PA2 à 1 :
PORTA |= (1<<PA2);
// mettre la broche PB3 à 0 :
PORTB &=~ (1<<PB2);
// changer l'état de la broche PC5 :
PORTC ^=~ (1<<PC5);
// mettre les broche PB2 et PB3 à 1 :
PORTB |= ( (1<<PB2) | (1<<PB3) );
// mettre les broche PC4 et PC6 à 0 :
PORTB &=~ ( (1<<PC4) | (1<<PC6) );