Titelbild Mikrocontroller

18.7. ADCSRA – ADC Control and Status Register A


ADCSRA Register des ATmega8

ADCSRA Register des ATmega8



Bit 7 – ADEN: ADC Enable

Mit einer 1 in diesem Bit wird der ADC freigegeben. Durch löschen des Bits wird der ADC gesperrt. Wird das Bit während einer laufenden Wandlung gelöscht, wird diese Wandlung abgebrochen.

Bit 6 – ADSC: ADC Start Conversion

Im Modus der Einzelwandlung muss dieses Bit zum Starten jeder einzelnen Wandlung gesetzt werden. Wenn die Wandlung abgeschlossen ist, wird das Bit automatisch wieder gelöscht. Im Modus der fortlaufenden Wandlung startet das Setzen des Bits die erste Wandlung. Die erste Wandlung nach dem Beschreiben des ADSC nachdem der ADC freigegeben wurde oder wenn das ADSC gleichzeitig mit der Freigabe des ADC beschrieben wird, ist 25 ADC Takte lang im Vergleich zu einer normalen Wandlung, die nur 13 Takte lang ist. Bei der ersten Wandlung muss zunächst der ADC initialisiert werden.

Das ADSC wird so lange als 1 gelesen, wie eine Wandlung andauert. Nach dem Abschluss einer Wandlung wird das Bit automatisch wieder auf Null gesetzt. Das Schreiben einer Null in dieses Bit hat keine Auswirkungen.

Bit 5 – ADFR: ADC Free Running Select

Wenn dieses Bit gesetzt ist, arbeitet der ADC im Modus der fortlaufenden Wandlung. In diesem Modus erfasst und wandelt der ADC kontinuierlich und aktualisiert die Daten-Register. Das Löschen des Bits stoppt die weitere Wandlung.

Bit 4 – ADIF: ADC Interrupt Flag

Dieses Bit wird gesetzt, wenn eine Wandlung abgeschlossen und die Daten-Register aktualisiert wurden. Der ADC Conversion Complete Interrupt wird ausgeführt, wenn das ADIE-Bit und das globale Interrupt-Bit (I-Bit im SREG) gesetzt sind. ADIF wird durch die Hardware gelöscht, wenn die Interrupt-Routine ausgeführt wird. Alternativ kann das ADIF-Bit auch gelöscht werden, indem man eine logische 1 in das Flag schreibt. Dies ist besonders zu beachten, wenn man eine lese-ändern-schreiben Operation mit dem ADCSR durchführt, da dadurch ein schwebender Interrupt gelöscht werden kann (man liest eine 1 im ADIF, verändert irgendein anderes Bit und schreibt das ganze Byte zurück. Die 1 im ADIF führt dann zum Löschen des Flags). Das kann auch geschehen, wenn die SBI und CBI Befehle verwendet werden.

Bit 3 – ADIE: ADC Interrupt Enable

Wenn dieses Bit gesetzt wird und auch das I-Bit im SREG die Interrupts global freigibt, dann ist der ADC Conversion Complete Interrupt freigegeben.

Diese Bits legen den Teilungsfaktor des Vorteilers fest, der aus der XTAL Frequenz den ADC-Takt ableitet.
ADPS2 ADPS1 ADPS0 Teilungsfaktor
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
Impressum