mikrocontroller.net

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


Autor: Andreas N. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jornbyte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.