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