AtMega AD-Wandler Problem

Gast #1796239
Lesenswert?

Hallo!
bin noch ein ziemlicher Anfänger der Mikrocontrollerprogrammierung und 
versuche gerade eine einfache AD-Wandlung mit dem AtMega328 
hinzubekommen.

Habe jetz laut Datenblatt den Wandler konfiguriert, doch aus irgendeinem 
Grund erhalte ich als Ausgabewert nur 1023 obwohl ich schon widerstände, 
piezo-sensoren und fixspannungen am eingang angelegt habe!

Vermute also einen fehler im code!
Wär nett wenn ihr mir helfen könnten! DANKE im voraus!
1
  //AD - Wandler Init
2
  ADCSRA |= (1<<ADIE);    //Interrupt bei neuem Wert
3
  DIDR0 |= (1<<ADC0D);    //Digitale Funktion des Pins deaktivieren
4
  ADMUX |= (1<<MUX0);      //AD1 als Eingang
5
  ADCSRA |= (1<<ADEN);    //Wandler aktivieren
6

7
  //Wandlung wird alle 800ms gestartet!
8
  ADCSRA |= (1<<ADSC);    //Wandlung starten
9

10
  ISR(ADC_vect)
11
 {
12
    valuePiezo = (ADCH<<8)+ADCL;
13
    newValue = true;
14
 }

lg Thomas
#1796259
Lesenswert?

Thomas schrieb:
> Habe zusätzlich gar nichts eingestellt, aber als default-wert ist ja 0V
> eingestellt, oder nicht?

Und was erwartest du dann?

Dann wirst du mit so ziemlich jeder Spannung, die du am ADC einstellst, 
den ADC in den Overflow treiben, wenn du festlegst, dass der Maximalwert 
für den du noch einen vernünftigen Wert vom ADC (1023) haben möchtest, 
0V sein soll.

Die Referenzspannung ist jene Spannung, für die der ADC mit 1023 
antworten soll. Deine zu messende Spannung muss sich zwischen 0 und 
dieser Spannung bewegen, damit du vom ADC vernünftige Wetre bekommst.
Gast #1796268
Lesenswert?

Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als 
Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und 
auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als 
Wert, obwohl meine zumessende Spannung bei 2V liegt!
#1796281
Lesenswert?

Thomas schrieb:
> Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als
> Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und
> auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als
> Wert, obwohl meine zumessende Spannung bei 2V liegt!

Ich würde an deiner Stelle erst mal die interne Referenzspannung 
benutzen und mich am ADC Code aus dem Tutorial orientieren
AVR-GCC-Tutorial

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren