Hallo Community,
Ich möchte den Interrupt des Timer0 zur Entprellung von Tastern
verwenden (alle 10ms wird ein Interrupt ausgelöst). Über den ADC lese
ich 4 verschiedene Analoge Werte nacheinander ein, ebenfalls Interrupt
basierend. Laut Datenblatt des ATMEGA8 ist die Priorität des Timer0
(0x009) Interrupt höher als die Priorität des ADC (0x00E) Interrupt.
Ich versteh es jetzt so, dass es während einer Wandlung des ADC zu einer
Unterbrechung durch den Timer0 Interrupt kommen kann.
Die Frage: Meint ihr es ist unbedenklich oder sollte ich lieber während
jeder Wandlug durch den ADC die Interrupts ausschalten, also ungefähr
so:
1 | // INTERRUPTROUTINE 2 (Analog-/Digitalkonverter)
|
2 |
|
3 | ISR (ADC_vect) {
|
4 | cli();
|
5 | adc = ADCL + 256 * ADCH;// LO/HI - Anteil von ADC einlesen
|
6 | adc /=4; // mache aus 10-bit-wert einen 8-bit-wert
|
7 | sei();
|
8 | }
|
Danke für eure Antworten
mfg
Hohmi