From d730013d29570d1669ea242927f197e05147f6e4 Mon Sep 17 00:00:00 2001 From: dufourj Date: Fri, 3 Feb 2006 09:51:51 +0000 Subject: Cours avr : - correction du schéma ; - ajout de la macro _BV ; - autres corrections mineurs. --- n/avr/doc/cours.txt | 19 +++++++++++++++---- n/avr/doc/schema_avr.jpg | Bin 11792 -> 0 bytes n/avr/doc/schema_avr.png | Bin 0 -> 7115 bytes 3 files changed, 15 insertions(+), 4 deletions(-) delete mode 100644 n/avr/doc/schema_avr.jpg create mode 100644 n/avr/doc/schema_avr.png (limited to 'n/avr') diff --git a/n/avr/doc/cours.txt b/n/avr/doc/cours.txt index 83c7d49..ec0f19b 100644 --- a/n/avr/doc/cours.txt +++ b/n/avr/doc/cours.txt @@ -26,7 +26,7 @@ avantages : [Interface] On peux les faires fonctionner avec pleins d'autres composants. -*Image-center: schema_avr.jpg +*Image-center: schema_avr.png ~Schéma structurel d'un AVR~ Les AVR s'alimentent avec du 5V. @@ -111,7 +111,7 @@ branch Afin d'éviter de changer les bits des autres pattes du port, il faut donc utiliser les fonctions logiques : - [Mettre un bit à 1] Il faut faire un ''OU exclusif'' ; + [Mettre un bit à 1] Il faut faire un ''OU'' ; [Mettre un bit à 0] Il faut faire un ''ET'' du registre PIN avec un mot de 8 bits qui aura des 1 partout sauf pour le bit qu'on veut changé. @@ -120,13 +120,24 @@ utiliser les fonctions logiques : ~8 correspond à l'inverse de 8. En binaire, ça donne l'inverse de 00001000, c'est à dire 11110111. Notez que seul le 3ème bit est à 0 car c'est celui là qu'on veut changer */ - PORTA &= ~8 + PORTA &= ~8 /* Passer de 0 à 1 le 3ème bit du PORTA */ PORTA |= 8 +Il existe une macro ''_BV'' (définie dans |common/io.h|) qui permet de +travailler directement avec le rang du bit que l'on veut changer. L'exemple +précédent devriendrait alors : + PORTA &= ~_BV(3) /* 1 << 3 = 8 */ + PORTA |= _BV(3) + Notez que l'on peut aussi travailler avec plusieurs bits d'un coup. Par exemple si on veut passer les bits 2 et 3 de PORTA à 1, il suffit de faire : PORTA |= 12 /* 2³ + 2² = 12 */ + /* Pareil en utilisant la macro _BV */ + PORTA |= _BV(2) + _BV(3) + +Essayez d'utiliser cette macro car, de manière génénale, elle rend le code +plus lisible. * Des périphériques tout fait dans l'AVR L'AVR contient des périphériques tout fait comme par exemple : @@ -182,7 +193,7 @@ Pr soit bien vue dans les deux parties du code ; [Autoriser les interruptions] Il faut utiliser la fonction ''sei ()'' dans le code pour les activer ; - [Interdire les interruptions] Il faut utiliser la fonction ''cei ()'' + [Interdire les interruptions] Il faut utiliser la fonction ''cli ()'' dans le code pour les désactiver. * Interrupteur en entrée diff --git a/n/avr/doc/schema_avr.jpg b/n/avr/doc/schema_avr.jpg deleted file mode 100644 index 7033666..0000000 Binary files a/n/avr/doc/schema_avr.jpg and /dev/null differ diff --git a/n/avr/doc/schema_avr.png b/n/avr/doc/schema_avr.png new file mode 100644 index 0000000..7760917 Binary files /dev/null and b/n/avr/doc/schema_avr.png differ -- cgit v1.2.3