Hallo zusammen, habe bei einem Atmega128 den PortE mit 2 Tastern beschaltet (siehe Skizze: S1 auf PE6 und S2 auf PE5). Dann führe ich den simplen C Code : #include "main.h" int main(void) { while (1) { DDRC = 0xff; //PortC als Ausgang PORTC = 0x00; //alle LEDs an PortC anmachen } return 0; } Das Problem das ich nun habe ist folgendes: Sobald ich einen dieser Schalter berühre schaltet sich der Atmega aus, alles LEDs gehen aus und nichts funktioniert mehr (wie beim RESET). Und dies obwohl im Programm PortE, wo ja die Schalter dran sind, gar nicht vor kommt! Dieses Problem bleibt weiterhin sogar bestehen wenn ich PortE als Ausgang schalte mit DDRE = 0xff; Das kann ja irgendwie nicht sein??? Weiß jemand meinen Fehler? Ist da vielleicht bei meinem Schalter Anschluß etwas nicht in Ordnung (siehe Bild)? Vielen Dank Alex
Hallo, Wie groß sind deine beiden Widerstände. Sollten so bei 10kOhm liegen. lg, Stefan
Habe auch schon dran gedacht. Ja aber haben beide leider genau 10 kOhm. Fällt Dir vieleicht noch etwas ein? Komisch das er Resetet?!
Hallo Ulrich, Schalter S1 ist auf PE6 also PIN Nr.8 (INT6) geschaltet und Schalter S2 auf PE5 also PIN Nr.7 (INT5). Grüße Alex
Hmm, bin jetzt nicht so firm mit den speziellen Eigenheiten vom Mega128, aber könnte es sein, daß durch die Taster ein entsprechender Interrupt ausgelöst wird? Weil aber keine Interrupt-Service-Routine definiert ist, führt der AVR dann einen Reset durch?!? Bin mir nicht sicher, aber ist es nicht auch so, daß ein eingeschalteter (sprich: nicht maskierter) Interrupt auf externe Signale das DDRE-Register überlagert? Wäre mal interessant zu wissen, was passiert, wenn Du die Interrupts sperrst, ob dann der Fehler auch noch auftritt. Oder alternativ mal eine ISR-Routine ins Programm einbauen, die eine eindeutige Meldung ausgibt (wie z.B. "Finger weg von Taster 1" oder so... :-). Dadurch solltest Du dem Problem schnell auf die Schliche kommen. Viele Grüße Kai Markus
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.