Hallo Leute, ich bastle nun schon seit Tagen an meinem AT90USB1286 und dessen ADC Eingang. Ich habe den Code aufs nötigste red. Wenn ich den PIN F1 nicht belege liefert mir die Ausgabe immer 1023 = X. WEnn ich den PIN jetzt mit GND oder Vcc verbinde tut sich gar nichts. Woran liegt das?
1 | //ADC-init
|
2 | ADMUX |= (1<<REFS0); |
3 | // die Versorgungsspannung AVcc als Refernz wählen
|
4 | ADMUX |= (1<<MUX0); //MUX0 ist Eingang PINF1 |
5 | ADCSRA |= (1<<ADEN); // ADC aktivieren 1=ON; 0=OFF |
6 | ADCSRA |= (1<<ADSC); //Startet eine ADC Wandlung |
7 | ADCSRA |= (1<<ADPS2 | 1<<ADPS1) | (1<<ADPS0); //Prescaler 128-> 8000000/128 = 62,5kHz |
8 | |
9 | DDRF &= ~(1<<PF1); // 0 schaltet den Pin auf Eingang |
10 | PORTF |= (1<<PF1); //1 aktiviert den Pullup Widerstand |
Ausgabe:
1 | void startADC (void) |
2 | {
|
3 | X = ADCL; |
4 | X += (ADCH<<8); |
5 | printzahlen(X); |
6 | print(" = X\n"); |
7 | }
|