niedon
28.04.2007, 12:28
Hi!
In einem Laborprojekt nutze ich einen ATMega16 zur AD-Wandlung und anschließenden Anzeige über ein LC-Display.
Als Referenzspannung nutze ich eine externe Spannung an AREF (5,08V).
Nun zum eigentlichen Problem:
Für die Auflösung des Analogsignals reichen 8 Bit, also lasse ich mir die 8 höherwertigen Bits der Wandlung in ADCH speichern und nutze ADCL nicht.
Zum Proben zu Hause habe ich jetzt am PA0 ein 10k-Poti angeschlossen, und lasse mir das Ergebnis im Anschluss am PortC auf 8 LEDs ausgeben (JTAG ist deaktiviert, das funktioniert problemlos).
Wenn ich nun mal alle Eingangspannungen durchgehe (von 0-5V), dann zählen die LEDs im Binärcode hoch von 0-256. Nur in dem Bereich von 16-31 bleibt die Anzeige dauerhaft auf 15 stehen (die 4 unterstesten LEDs leuchten), es tut sich nichts. Darüber und darunter funktioniert es aber problemlos.
Kennt das Problem jemand? Ich kanns mir eigentlich nur so erlären, dass der Controller defekt ist, habe aber leider keinen 2. zu Hause, also kann ich das nicht ausprobieren.
Aber vielleicht liegt es ja an etwas anderem und jemand weiß es.
Vielen Dank
edit: Ok, hat sich erledigt, der ADC des Controllers war tatsächlich defekt
In einem Laborprojekt nutze ich einen ATMega16 zur AD-Wandlung und anschließenden Anzeige über ein LC-Display.
Als Referenzspannung nutze ich eine externe Spannung an AREF (5,08V).
Nun zum eigentlichen Problem:
Für die Auflösung des Analogsignals reichen 8 Bit, also lasse ich mir die 8 höherwertigen Bits der Wandlung in ADCH speichern und nutze ADCL nicht.
Zum Proben zu Hause habe ich jetzt am PA0 ein 10k-Poti angeschlossen, und lasse mir das Ergebnis im Anschluss am PortC auf 8 LEDs ausgeben (JTAG ist deaktiviert, das funktioniert problemlos).
Wenn ich nun mal alle Eingangspannungen durchgehe (von 0-5V), dann zählen die LEDs im Binärcode hoch von 0-256. Nur in dem Bereich von 16-31 bleibt die Anzeige dauerhaft auf 15 stehen (die 4 unterstesten LEDs leuchten), es tut sich nichts. Darüber und darunter funktioniert es aber problemlos.
Kennt das Problem jemand? Ich kanns mir eigentlich nur so erlären, dass der Controller defekt ist, habe aber leider keinen 2. zu Hause, also kann ich das nicht ausprobieren.
Aber vielleicht liegt es ja an etwas anderem und jemand weiß es.
Vielen Dank
edit: Ok, hat sich erledigt, der ADC des Controllers war tatsächlich defekt