Forum: Mikrocontroller und Digitale Elektronik Blinklicht - ATmega 8 - Fehler


von Johannes Meyer (Gast)


Angehängte Dateien:

Lesenswert?

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ß!

von Ingo Henze (Gast)


Lesenswert?

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

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.