Forum: Mikrocontroller und Digitale Elektronik Problem Mega88 ADC-Kanal_0


von Gast (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

habe den AD-Wandler (möchte Kanal 0-3 benutzen) des Mega88 programmiert 
nun stellt sich folgendes Problem dar, Kanal 1-3 arbeiten richtig und 
auf Kanal 0 liegen dauerhaft 5V an (DDR = Eingang , Portzuweisung = 0, 
hab´s auch schon als Ausgang versucht) dies bleibt auch erhalten wenn 
ich einen zweiten M88 nehme. Zum Testen/Messen habe ich den Pin von 
Kanal0 aus der Fassung "hochgelegt", damit ich ausschließen kann das 
dieser durch die Scahltung beeinflusst wird. Es muss an der 
Programmierung liegen. Im Datenblatt gibt es bzgl. Kanal0 keinen 
gesonderten Hinweis und wenn ein interener Pull-Up Probleme macht, warum 
dann nicht auch bei den anderen Kanälen ?
Wenn ich ein Poti an Kanal0 anschließe, dann funktioniert der Messung 
generell auch. Ich habe nur das Problem dass ich den analog Pegel am Pin 
"nur" zwischen ca. 3V und 5V verändern kann, sehr wahrscheinlich da ein 
interenr PullUp noch aktiv ist ! Oder misst Kanal0 die Ref-Spannung ?

Evtl. birgt mein Code noch einen Fehler auf ? Aber wiso dann nicht auch 
bei den anderen Kanälen ?

von Michael U. (amiga)


Lesenswert?

Hallo,

void Adc_Init (void)
{
  PORTC &= 0xF0;
  DDRC |= 0x0F; // (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);

Warum setzt Du hier PC0...PC3 als Ausgang? Ich denke, das sind die 
ADC-Kanäle, die Du nutzt?

  ucAdcChannelAct = 0;
  // Nächste Messung vorbereiten
  ADMUX &= 0xE0 ; // Bit Mux0-3 nullen
Hier stimmt zumindest der Kommentar nicht, es werden Bit 0-4 auf 0 
gesetzt.
Allerdings kann man Bit 4 in ADMUX sowieso nicht beschreiben, sollte 
egal sein.

Gruß aus Berlin
Michael

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.