Hallo, ich bekomme mein ADC ISR nicht zum laufen, vielleicht kann mir einer von euch Helfen! Bei dem Aufruf von der ISR soll die LED ausgeschaltet werden, wird sie aber nicht --> ISR wird nicht aufgerufen. ISR sind mit sei() aktiviert.
1 | |
2 | //ADC Einstellung
|
3 | ADCSRA |= (1<<ADEN); //ADC aktivieren |
4 | ADCSRA |= (1<<ADSC); //Messung starten --> Freerunning-Modus |
5 | ADCSRA &= ~(1<<ADIE); //ADC Interrutpe erlauben |
6 | SREG |= (1<<7); //ADC Interrupte erlauben, Setzte I in SREG |
7 | ADCSRA |= (1<<ADPS0); //ADPS2...ADPS0 (ADC Prescaler Select Bits) |
8 | ADCSRA |= (1<<ADPS1); |
9 | ADCSRA |= (1<<ADPS2); |
10 | ADMUX &= ~(1<<REFS0); //Externe A_REF_Spannung |
11 | ADMUX &= ~(1<<REFS1); |
12 | |
13 | ADMUX |= (1<<MUX4); //ADC_6 wird verwendet (PIN_A6) |
14 | ADMUX &= ~(1<<MUX3); |
15 | ADMUX |= (1<<MUX2); |
16 | ADMUX |= (1<<MUX1); |
17 | ADMUX &= ~(1<<MUX0); |
18 | |
19 | |
20 | |
21 | ISR(ADC_vect) |
22 | {
|
23 | ADC_1_RESULT = ADCL; //Wert auf 2 mal auslesen |
24 | ADC_1_RESULT += (ADCH<<8); |
25 | PORTB &= ~(1<<STATUS_LED); |
26 | }
|
Grüße stiefei