User manual
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library
3.1.8. Les CAN
Les CAN sont lus avec la fonction déjà connue de la RP6Lib:
uint16_t readADC(uint8_t channel)
Une variante automatique qui lit dans l'ordre les canaux CAN en tâche de fond n'existe 
pas (encore) pour le RP6-M32.
Les canaux sont évidemment appelés autrement que dans la RP6Lib. Les canaux sui-
vants sont disponibles:
ADC_7  --> ADC canal 7 – disponible sur la fiche à 10 broches „ADC“!
ADC_6 --> ADC canal 6 ... 
ADC_5
ADC_4
ADC_3
ADC_2 --> ADC canal 2 
ADC_KEYPAD --> Les touches sont branchées ici
ADC_MIC --> et le microphone ici. 
3.1.9. Ports I/O 
Puisque le RP6 CONTROL dispose de 14 ports I/O libres, nous ne décrivons ici que  
succinctement comment on accède généralement aux ports I/O d'un AVR. 
L'ATMEGA32 possède 4 ports I/O à 8 bits chacun. Chaque port est commandé via 3 
registres, à savoir un registre pour la « direction » des broches I/O (DDRx), donc si 
une broche est commutée en entrée ou en sortie, un registre pour l'écriture (PORTx) 
et un registre pour la lecture (PINx). 
Si vous voulez utiliser une broche I/O comme sortie p.ex. Pour commuter une LED, 
vous devez mettre le bit correspondant dans le registre DDRx sur 1. 
Exemple:
DDRC |= IO_PC7; // PC7 est maintenant une sortie
DDRC = IO_PC7 | IO_PC6 | IO_PC5; // PC5, PC6, PC7 sont maintenant des sorties, 
 // toutes les autres broches sont des entrées!
Ensuite vous   pouvez   commuter  la   sortie  sur   le  niveau   high  ou low  via   le  registre 
PORTx. 
Exemple:
PORTC |= IO_PC7; // High
PORTC &= ~IO_PC7; // Low
Si un bit est à 0 dans le registre DDRx, la broche correspondante est configurée en 
entrée.
Exemple:
DDRC &= ~IO_PC6; // PC6 est maintenant une entrée
Ensuite, le registre PINx nous renseigne sur l'état de la broche, à savoir si un haut 
(high) ou bas (low) niveau est appliqué à la broche: 
if(PINC & IO_PC6) 
writeString_P("PC6 is HIGH!\n");
else
writeString_P("PC6 is LOW!\n");
- 18 -










