User manual
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library
3.1.8. ADCs
Die ADC Kanäle lassen sich mit der schon von der RP6Lib bekannten Funktion:
uint16_t readADC(uint8_t channel)
auslesen. Eine automatische Variante die der Reihe nach die ADC Kanäle im Hinter-
grund ausliest gibt es für das RP6-M32 (noch) nicht. 
Die Kanäle sind natürlich anders bezeichnet als in der RP6Lib – folgende Kanäle sind 
verfügbar:
ADC_7  --> ADC Kanal 7 – auf dem 10 poligen Wannenstecker „ADC“ verfügbar!
ADC_6 --> ADC Kanal 6 ... 
ADC_5
ADC_4
ADC_3
ADC_2 --> ADC Kanal 2 
ADC_KEYPAD --> Hier sind die Taster angeschlossen
ADC_MIC --> Und hier das Mikrofon. 
3.1.9. I/O Ports
Da auf dem RP6 CONTROL insgesamt 14 freie I/O Ports verfügbar sind, beschreiben 
wir hier noch kurz wie man allgemein auf I/O Ports eines AVRs zugreifen kann. 
Der ATMEGA32 hat 4 I/O Ports zu je 8 Bit. Jeder Port wird über 3 Register gesteuert. 
Ein Register für die „Richtung“ der I/O Pins (DDRx), also ob ein Pin als Eingang oder 
Ausgang geschaltet ist, ein Register zum Schreiben (PORTx) und ein Register zum Le-
sen (PINx). 
Wenn man einen I/O Pin als Ausgang verwenden will, um z.B. eine LED zu schalten, 
muss man das entsprechende Bit im DDRx Register auf 1 setzen. 
Beispiel:
DDRC |= IO_PC7; // PC7 ist nun Ausgang
DDRC = IO_PC7 | IO_PC6 | IO_PC5; // PC5, PC6, PC7 sind nun Ausgang, 
 // alle anderen Pins sind Eingänge!
Dann kann man über das PORTx Register den Ausgang auf high oder low pegel schal-
ten. 
Beispiel:
PORTC |= IO_PC7; // High
PORTC &= ~IO_PC7; // Low
Ist ein Bit im DDRx Register 0, so ist der zugehörige Pin als Eingang konfiguriert.
Beispiel:
DDRC &= ~IO_PC6; // PC6 ist nun Eingang
Dann kann man über das PINx Register den Zustand des Pins auslesen, also ob high 
oder low Pegel am Pin anliegt. 
if(PINC & IO_PC6) 
writeString_P("PC6 is HIGH!\n");
else
writeString_P("PC6 is LOW!\n");
- 18 -










