Hallo! Als eines meiner ersten Anfängerprojekte wollte ich ein kleines Lauflicht programmieren, bei dem immer zwei LED's an PORTD meines ATMega 8 von links nach rechts laufen. Das funktioniert auch ganz gut. Nur das nach etwa 2 manchmal auch 3 Durchgängen die LED's von der Mitte wieder zum Ausgangspunkt springen. Es scheint so als würde der Controller reseten. Aber warum? Vielleicht hat jemand von euch eine Idee! P.S. Bitte nicht über die vielleicht umständliche Programmierweise lustig machen. Bin wie schon gesagt noch Anfänger MFG Blutiger Anfänger
Hab mir den Code jetzt nicht angeguckt, aber manchmal ist der Fehler auch in der Beschaltung zu finden. Womit befeuerst du denn deinen uC? Batterie, transformator/Geichrichter/Netzspannung etc.?
hab den code zwar nur überflogen, aber zwei Sachen sind mir aufgefallen: 1) du sicherst das Status Register in der Int-Routine nicht. 2) du verläßt die Int-Routine manchmal (BREQ led) mit einem Jump und springst weiter in die Main-loop. Den Int enablest du zwar mit sei wieder, aber der Stack wird vollgeschrieben. -> in den ledxx: Routinen sei weglassen und rjmp loop dirch reti ersetzen grüsse leo9
Erstma Danke für die Antwort! @Chriss Denke nicht das es an der äußeren Beschaltung liegt.Verwende ein umgebautes PC- Netzteil als Spannungsversorgung. @Leo9 Es leuchtet zwar ein, was du geschrieben hast. Es verschlimmert den ganzen Effekt aber eher! Aber trotzdem Danke! MFG Blutiger Anfänger
Spring niemals aus einer Interrupt-Routine heraus. Sie sollte immer mit einem reti verlassen werden - alles andere ist unsauber und bringt nur Probleme.
Gilt aber auch für jedes andere Unterprogramm: Spring niemals aus einem Unterprogramm heraus ! Peter
Hallo, du schreibst im Beitrag dass du einen ATMega8 verwendest. Das gleiche wird im Programm im Kommentar ganz oben auch noch mal geschrieben. Und dann kommt '.include "4433def.inc"'. Welcher µC wird denn jetzt verwendet? Ich hätte jetzt eigentlich '.include "m8def.inc"' erwartet. Gruß Thorsten
Habe jetzt alles geändert(Anhang). Auch das mit m8def.inc. Der Fehler ist aber immernoch da! Noch jemand eine Idee?
Hi, ich lagere meine SMD-Teile in Boxen, wie im Anhang. Habe übrigens noch 15 Stück übrig, die könnte ich gerne günstig abgeben. Maße gesamt: 90 x 38 Maße ein Fach: 17x17x6 (LxBxH) (alles in mm) Pro Fach passen zwar nicht 1000 Widerstände rein, aber ca. 150-200 1206er ist kein Problem. Schick einfach eine Mail bei Interesse. Gruß Thorsten
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.