Hallo zusammen.
Ich habe ein "mich in den Wahnsinn treibendes Problem" mit meinem ADC im
oben genannten Mikrocontroller.
Ich möchte 4 Spannungswerte an den Kanälen ADC0-3 nacheinander messen.
Das erste Mal funktioniert es auch super.
Bei ADC_Init() : AREF, ADC Interrupt Enable, ADC Prescaler 64 (8MHZ
Systemtakt)
Bei ADC_Start(); erster Parameter=ADC Kanal zweiter Parameter=single
conversion. ADEN=1 ADSC=1
Wenn aber jetzt in der do-while Schleife der ADC Wert gelesen werden
soll, steht nach jeder Messung 509/510 im ADC Register.
Ich kann mir nicht erklären warum, weil es ja bei der ersten Messung,
vor Do-while, funktioniert.
Hat jemand ne Idee woran das liegen könnte???
Vielen Dank im Vorraus
Björn
1 | int main(void)
|
2 | {
|
3 | ADC_Init();
|
4 | for (adc_loop = 0; adc_loop < 4; adc_loop++)
|
5 | {
|
6 | ADC_Start(adc_loop, 0);
|
7 | while(ADCSRA & (1 << ADSC));
|
8 | }
|
9 |
|
10 | do{
|
11 | for (adc_loop = 0; adc_loop < 4; adc_loop++)
|
12 | {
|
13 | ADC_Start(adc_loop, 0);
|
14 | while(ADCSRA & (1 << ADSC));
|
15 | }
|
16 |
|
17 |
|
18 |
|
19 | }while(1);
|
20 | }
|