Hallo !
Danke erstmal für die Antwort!
Hab' deinen Vorschlag entsprechend umgesetzt und das Programm dabei etwas vereinfacht, sieht jetzt so aus:
Code:
.include "m8def.inc"
.org 0x000
rjmp main
.org 0x008
rjmp TimerHandler
main: ldi r16,0xFF ; PortB ist Output
out DDRB, r16
ldi r16,0b00000011 ; Timer div. 1/64
out TCCR1B, r16
ldi r16,0b00000100 ; Overflow Interrupt Enable
out TIMSK, r16
ldi r16,0b00000000 ; Alle LEDs aus.
out PORTB, r16
sei
loop: rjmp loop
TimerHandler: com r16
out PORTB,r16
Ende: reti
Interessanterweise zeigt die Schaltung exakt dasselbe Verhalten wie vorher.
(Habe auch Varianten ausprobiert, bei denen der Zustand in einem anderen Register verwaltet wird, ebenfalls das gleiche Verhalten.)
An Pin 14 hängt ein 100 Ohm - Widerstand, daran die LED an Masse. Den Pin einfach nur eingeschaltet lassen funktioniert.
Ich vermute fast, daß schlicht *zwei* Interrupts kurz hintereinander generiert werden, könnte das sein ?
Grüße!
Alex
Lesezeichen