Nachdem du die LED toggelst kommt der Pausenblock. Heute Mittag hatte ich das auch mal ausgerechnet, das sind etwa 27 Maschinenzyklen * 256 *256, also etwa 17.700Mz. Das gibt eine Pause von 900ms zwischen toggeln.
27*256*256 = 1769472Mz (d.h. 90ms --> 180ms pro Periode)Nachdem du die LED toggelst kommt der Pausenblock. Heute Mittag hatte ich das auch mal ausgerechnet, das sind etwa 27 Maschinenzyklen * 256 *256, also etwa 17.700Mz. Das gibt eine Pause von 900ms zwischen toggeln.
Kein Problem! Ich bin mal gespannt, was für einen blöden Bock ich bei diesem Blinker wieder geschossen habe?Ah OK. Ich hatte da 17700000 fuer die Pause abgelesen, eine null zu viel, sorry.
Ich werde heute noch ein paar Tests machen. Danke für die Ideen!Du ergänzt den Code aus #1 um 'ne 2te LED, die Du vor Eintritt in die L0-Schleife an, und nach Austritt ausschaltest, und direkt dahinter 'ne leere Endlosschleife. Wenn das paßt, Stück für Stück den Rest rein, bis der Fehler auftritt...
Noch'n Hinweis: verwende wenn möglich die Bitname oder selbst definierte Konstanten. Für das Toggeln kannst Du auch direkt auf das Pin-Register schreiben (SBI).
Lop: rjmp Lop
Main: rjmp Main
ldi temp1, 0x01
out DDRB, temp1
cbi PORTB, 0
ldi temp1, 0x80
out DDRA, temp1
out PORTA, temp1
ldi tempL, 10
L0: sbi PINA, PINA7
ldi temp1, 0
L1: ldi temp2, 0
L2: nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec temp2
brne L2
dec temp1
brne L1
dec tempL
brne L0
Main: rjmp Main
sbi PORTB, 0