Hallo Leute! Hoffentlich belaste ich Euch nicht mit meiner Anfängerfrage. Ein Bekannter sagte mir Assembler sei sehr einfach, da ich selbst zu Basic tendiere. Aber jetzt scheitere ich schon an diesem einfachen Problem: zwei LED sollen abwechselnd im 0,6sek-Takt blinken. Könnte sich vielleicht mal jemand mein Programm anschauen, was da falsch ist, auf Bit null des Ports kommen nur Nadelimpulse statt 0,6sek.?? Im AVR-Simulator scheint es aber zu funktionieren, auf meinem Board nicht... Vielen Dank im Voraus. Lehrbücher für Assembler gibt es ja keine, also muß man sich alles selbst aneignen, oder?? MfG, Andreas Über eine Antwort würde ich mich sehr freuen.
In der Pausenschleife lädtst Du ZH zweimal, der Befehl clz ist nicht notwendig (durch den folgenden dec wird das zero sowieso neu gesetzt). So auf den ersten Blick sehe ich keinen Fehler, wie hast Du die LEDs angeschlossen? Spannungsversorgung des Controllers ? Evtl bricht die Spannung ein und er löst dadurch einen Reset aus, hast Du an den 100nF Kondensator zwischen vcc und gnd gedacht?
ich sehe auch keinen Softwarefehler, die üblichen Anfängerfehler (stack, DDRx) hast du umschifft. Ich tippe auch mal auf einen Hardwarefehler. Und nur so zur Info: beim Init von SP hast du dick dazugeschrieben, dass sonst rjmp nicht funktioniert, das stimmt nicht. rjmp funktioniert immer, wichtig ist der stack für rcall/ret.
Versuche es mal mit dieser "Pause" ; delaying 4396788 cycles: ldi R17, $24 WGLOOP0: ldi R18, $B1 WGLOOP1: ldi R19, $E5 WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; delaying 12 cycles: ldi R17, $04 WGLOOP3: dec R17 brne WGLOOP3
Hi, der Tip mit der Spannungsversorgung koennte helfen, insbesondere, wenn du das Netzteil mit dem 7805 exakt nach der Anleitung von der Seite hier aufgebaut hast. Ich hab das so gemacht, und mit einem alten Modellbahntrafo (Graetz-Gleichrichter ohne weitere Kondensatoren) betrieben. Effekt war, dass alles lief, aber sobald eine LED aktiv war, gabs durch den Spannungseinbruch einen Reset, was sich letztlich in so einem Flimmern zeigte (Reset -> LED an -> Reset usw). Der ATMega8 scheint so etwa 15...20 Resets pro Sekunde zu schaffen ;-) Ein 100 Mikrofarad-Kondensator am Eingang (vorm 7805) gegen Masse hat das Problem dann sehr nachhaltig geloest. Ansonsten an der Stelle nochmal ein grosses Dankeschoen an diese Seite und das Forum - meine erste Testschaltung (bin Mikrocontroller-Anfaenger) mit ATMega8, 8 LEDs und vier Tastern (wird noch erweitert) lief am Wochenende bis auf obiges Problem auf Anhieb und sofort. Viele Gruesse, Jan
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.