Forum: Mikrocontroller und Digitale Elektronik ADC im Mega32 gibt immer 0x00 aus


von Paul (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem mit dem ADC im Mega32 (DIL40-Gehäuse).
Ich möchte an Port A6 (=ADC6) eine Spannung von 0...5V messen, die ich 
mit einem 2k2 Poti vorgebe. Also sehr einfach. 8-bit reichen mir, ich 
nutze den Modus mit "Left-Adjust". Der Wandler soll im Free-Running-Mode 
laufen, ich will dann vom Programm aus zu beliebigem Zeitpunkt spontan 
auf das Datenregister ADCH zugreifen wenn ich den Messwert brauche.

Mein Problem: die Spannung liegt mit dem Multimeter messbar am Pin PA6 
des Mega32 an, aber im Register ADCH steht immer nur 0x00. Auch die Pins 
AVCC und AREF liegen wie gewünscht messbar auf 5V.

Den ADC initialisiere ich so:

ADMUX =0x66; //Vref = AVCC, Left-Adjust, Channel=ADC6 single ended
SFIOR =0x00; //freerunning mode
ADCSRA=0x7F; //ADC enabled, ADC start,Auto Trigger, Int 
off,Prescaler=128

im Programm greife ich dann spontan auf das Register ADCH zu:

unsigned char variable;

variable=ADCH;


Sieht jemand einen Fehler? Eigentlich kann man doch da nicht viel falsch 
machen...

vielen Dank für alle Tips!!

Paul

von holger (Gast)


Lesenswert?

>vielen Dank für alle Tips!!

Wir bevorzugen vollständige compilierbare Codes.

von Floh (Gast)


Lesenswert?

Paul schrieb:
> ADCSRA=0x7F; //ADC enabled, ADC start,Auto Trigger, Int

deswegen gebraucht man für sowas nicht die Hexzahlendarstellung:
Du aktivierst den ADC garnicht. (oberstes Bit setzen)
ADCSRA = (1<<ADEN)| ...

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
Noch kein Account? Hier anmelden.