Blinklicht - ATmega 8 - Fehler

Gast #91178
Hallo!

In den Anlagen ist die SOurce von einem kleine Programm, dass LEDs an
PORTB und PORTC blinken lassen soll.

Wenn das Programm durchgelaufen ist, und es wieder an den Start
springen soll also am Ende "rjmp start" steht passiert gar nichts.
Wenn statt "rjmp start" "rjmp ende" steht gehen die LEDs nach einer
Sekunde an, also funktioniert es dann.

Woran liegt es, dass sich bei "rjmp start" nix tut??


Gruß!
Angehängte Dateien:
Gast #91179
Das nichts passiert, wenn Du mit "rjmp start" wieder zum Anfang des
Programms springst, kann man so nicht sagen.

Wenn nach dem Reset Deine 1 Sekunde Zeitschleife abgelaufen ist,
schaltest Du ja die LEDs mit
  ldi temp, 0b00000000
  out PORTB, temp
  out PORTC, temp
ein.
Unmittelbar dannach springst Du zu der Befehlsfolge
  ldi temp, 0xFF
  out PORTB, temp
  out PORTC, temp
und schaltest sie damit quasi sofort wieder aus.

Effektiv sind sie dann nur ein paar wenige Prozessortakte an, was bei
den 8 MHz Taktfrequenz weniger als eine Mikrosekunde sein dürfte.
Das ist natürlich viel zu schnell, als das Du das irgendwie wahrnehmen
könntest.
Es sieht also dadurch nur so aus, als würde garnichts passieren.

Gruß
Ingo

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.