Wo is
reset_vector:
ldi temp,high(ramend) ;Stackpointer RAMend, Stack geht nach unten!
out SPH,temp
ldi temp,low(ramend)
out SPL,temp
des?
Dann würde ich Dir gleich mal empfehlen so einen Blödsinn mit einer
Schleife nicht zu schreiben. Sondern einen Timer zu benutzen der ist
frei Scallierbar und dder µC schläft wärend der ganzen Zeit.
Timer aufziehen
Timer starten
Int ena
init_sleep:
ldi temp,(1<<SE) ;Sleep Enable
out MCUCR,temp
clv ;clear carry
sei ;Global Int ena!!! Wichtig sonst geeht das ganze nicht.
TimInt Einsprung hart mit rjmp auf (siehe nächste Zeile)
Int in einem Register Markieren (sonst weist ja nicht welcher gekommen
ist)
(bei nur einem kleinen Programm ist das nicht notwendig aber wenn Du
z.B. mehrere Int hast dann immer Markieren und dann per Liste die jenige
Routine ausführen die der jeweilige Int erfordert.)
call Routine
ret
sleep ;Zzzzzz
MfG
Grüner