Eller tips på nån annan lösning....

Kod: Markera allt
.org 0x0000
rjmp main
main:
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16
ldi r16, 0xFF
out DDRB, r16
loop:
sbi PortB, 3
rcall delay_05
cbi PortB, 3
rcall delay_05
rjmp loop
delay_05:
ldi r16, 8
outer_loop:
ldi r24, low(3037)
ldi r25, high(3037)
delay_loop:
adiw r24, 1
brne delay_loop
dec r16
brne outer_loop
ret
Kod: Markera allt
.include "C:\Program\Atmel\AVR Tools\AvrAssembler\Appnotes\tn26def.inc"
.org 0x0000
rjmp main
main:
ldi r16, low(RAMEND)
out SP, r16
ldi r16, high(RAMEND)
out SP, r16
ldi r16, 0xFF
out DDRB, r16
loop:
sbi PortB, 3
rcall delay_05
cbi PortB, 3
rcall delay_05
rjmp loop
delay_05:
ldi r16, 8
outer_loop:
ldi r24, low(3037)
ldi r25, high(3037)
delay_loop:
adiw r24, 1
brne delay_loop
dec r16
brne outer_loop
ret
Kod: Markera allt
ldi r16, low(RAMEND)
out SP, r16
ldi r16, high(RAMEND)
out SP, r16
Kod: Markera allt
ldi r16,RAMEND ;Stackpointer initialisieren
out SP,r16
Kod: Markera allt
sbi PortB, 3
rcall delay_05
cbi PortB, 3
rcall delay_05
Kod: Markera allt
sbi PortB, 1
rcall delay_05
cbi PortB, 1
rcall delay_05
Kod: Markera allt
char const num[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
void wait( ){ ; }
void main()
{
unsigned int i; /* Delay var */
unsigned char j; /* LED var */
while (1) { /* Loop forever */
for (j=0; j< 7; j++) { /* Blink LED 0,1,2,3,4,5,6 */
PORTB = num[j]; /* Output to LED Port */
for (i = 0; i < 10000; i++) /* Delay for 1000 Counts */
{
wait (); /* call wait function */
}
}
}
}