Hallo !
Habe mich durch zig andere Varianten von "LED-Blinker-mit-Timer-Interrupts" gelesen und kann den Fehler in meiner nicht entdecken... hat jemand ein Stichwort für mich ?
Das Problem: Statt dem erwarteten Verhalten (LED für ca. 1 Sek. ein, dann für ca. 1 Sek. aus), blitzt die LED in Abständen von ca. 1 Sek kurz auf. Warum ??
Code:
.include "m8def.inc"
.org 0x000
rjmp main
.org 0x008
rjmp TimerHandler
main: ldi r16,0xFF ; PortB ist Output
out DDRB, r16
ldi r16,0b00000100 ; Overflow Interrupt Enable
out TIMSK, r16
ldi r16,0b00000011 ; Timer div. 1/64
out TCCR1B, r16
ldi r16,0b00000000
out PORTB, r16
sei
loop: rjmp loop
TimerHandler: in r16,PORTB; Aktuellen Zustand von PORTB einlesen
sbrc r16,0; sind die LEDs gerade aus ?Dann Einschalten, sonst...
rjmp Ausschalten; ausschalten...
ldi r16,0b00000111
out PORTB,r16
rjmp Ende
Ausschalten: ldi r16,0b00000000
out PORTB,r16
Ende: reti
[/code]
Lesezeichen