Forum: Mikrocontroller und Digitale Elektronik HILFE für Anfänger LED blinken geht nicht


von Andreas N. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von thkais (Gast)


Lesenswert?

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?

von crazy horse (Gast)


Lesenswert?

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.

von Jornbyte (Gast)


Lesenswert?

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

von Jan (Gast)


Lesenswert?

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