Hallo zusammen, Ich beobachte folgende komische Sache. Hab nen AT32 hier wo ich den Kanal 1 des ADC auslese. Bei einer Frequenz von 8Mhz klappt das auch alles ohne Problem, sobald ich aber auf 16Mhz gehe bekomme ich als ADC-Wert immer nur 1023. Weiß jemand woran das liegen könnte?
1 | int main(void) |
2 | {
|
3 | Init_ADC(); |
4 | |
5 | while(1) |
6 | {
|
7 | |
8 | put_number(ADCW, 40, 32, 3, 0, font_6x8); |
9 | _delay_ms(5); |
10 | ADCSRA |= (1<<ADSC); |
11 | }
|
12 | }
|
13 | |
14 | ISR(ADC_vect) |
15 | {
|
16 | |
17 | if(ADCW/4 > (OCR2 + 10)) |
18 | OCR2 += 1; |
19 | else if(OCR2 > 30) |
20 | OCR2 -= 1; |
21 | |
22 | }
|
23 | |
24 | |
25 | void Init_ADC(void) |
26 | {
|
27 | ADMUX = 0x01; |
28 | ADCSRA = 0x88; |
29 | }
|