Hallo, bin ich richtig der Annahme das ich mit folgenden Code eine 2,56V an Pin 21 meines Atmega8 gegen GND messen müsste? uint16_t readADC(uint8_t channel) { uint8_t i; uint16_t result = 0; // Den ADC aktivieren und Teilungsfaktor auf 128 stellen ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // Kanal des Multiplexers waehlen // AREF Verwenden ADMUX = channel | (1<<REFS0)| (1<<REFS1); // Den ADC initialisieren und einen sog. Dummyreadout machen ADCSRA |= (1<<ADSC); while(ADCSRA & (1<<ADSC)); // Jetzt 3x die analoge Spannung and Kanal channel auslesen // und dann Durchschnittswert ausrechnen. for(i=0; i<3; i++) { // Eine Wandlung ADCSRA |= (1<<ADSC); // Auf Ergebnis warten... while(ADCSRA & (1<<ADSC)); result += ADCW; } // ADC wieder deaktivieren ADCSRA &= ~(1<<ADEN); result /= 3; return result; } AREF (pin 21) hängt mit nen 100nF Kondensator gegen Masse. Ich messe 0V an den Pin... Aber Warum?
ATmega8 Pin 21 ist AREF. Deine Auswahl der Referenzspannung steht für "Internal 2.56V Voltage Reference with external capacitor at AREF pin" In diesem Fall würde ich auch 2,56V an dem Pin erwarten. Ausprobiert habe ich das allerdings noch nie. Bekommst du den die erwarteten Messwerte im ADCW Register?
> 2,56V an dem Pin erwarten
Dann sind wir zu dritt. Allerdings nur, solange der ADC aktiviert ist,
also während des Unterprogramms - man wird zur Messung ein Oszilloskop
benötigen.
> // ADC wieder deaktivieren > ADCSRA &= ~(1<<ADEN); Lass den doch mal aktiviert. > result /= 3; Ich hätte 4 genommen;)
das war es... macht ja eigentlich auch Sinn das die Spannung nur ansteht wenn sie auch gebraucht wird Danke
> zur Messung ein Oszilloskop Und dann vermutlich sehen, dass die 100 nF an Aref nicht schnell genug geladen werden. Also war holgers Antwort > Lass den doch mal aktiviert wohl die beste.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.