Forum: Mikrocontroller und Digitale Elektronik ISR Interrupt für Analog Input


von Google Master (Gast)


Lesenswert?

Hallo

Eine Frage zu ISR(ADC_vect). Im Datenblatt von Atmega8L steht:

* Bit 4 – ADIF: ADC Interrupt Flag:

This bit is set when an ADC conversion completes and the Data Registers 
are updated. The ADC Conversion Complete Interrupt is executed if the 
ADIE bit and the I-bit in SREG are set.

Ist damit gemeint, dass sobald die ADC Conversion abgeschlossen ist, der 
Interrupt  des ADC erfolgt? Oder ist mit dem I-Bit was anderes gemeint?

Das ISR ist doch dieses Register oder? -->
SREG | I | T | H | S | V | N | Z | C |

von Werner B. (werner-b)


Lesenswert?

Es gibt zwei Möglichkeiten den ADC Interrupt zu sprerren.

Entweder man setzt das ADIE-Bit NICHT, oder/und man sperrt ALLE 
Interrupts indem das I-Bit im Statusregister auf 0 gesetzt wird.

Wenn ADIE und ADIF gesetzt sind (ADIE durch dich, ADIF wenn die Wandlung 
fertig ist) wird der Interrupt ausglöst sobald das I-Bit gesetzt wird 
(durch STI).
Mehr steht da nicht drin.

von Jean P. (fubu1000)


Lesenswert?

Hi,
falls AVR, statt "STI" für Interrupts an , "sei" (in ASM) oder "sei()"
(in C) benutzen.

von Google Master (Gast)


Lesenswert?

Ah OK, hab es kappiert. Nachdem die WAndlung fertig ist, wird das ADIF 
gesetzt, wodurch dann die Interrupt-Routine ISR(ADC_vect) ausgeführt 
wird. Und das jedesmal wenn die Wandlung abgeschlossen ist.

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.