Код
RESET: ;
;---- STACK INIT ------;
ldi tmp, low(ramend);
out SPL,tmp ;
ldi tmp,high(ramend);
out SPH,tmp ;
;----------------------;
clr zero ;
;----------------------;
sts WDTCR,zero ; disable watchdog Timer
sei ; enable interrupts
Где-то пишем код.
Код
;----------------------;
; Programm will be restarted after (1ms F.osc 16.000MHz)
; - - - WDCE WDE WDP2 WDP1 WDP0
; (0-16kc),(1-32kc),(2-64kc),(4-256kc),(5-512kc),(6-1024kc),(7-2048kc)
ldi tmp,(1<<WDCE)|(1<<WDE)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0)
andi tmp,0x1F ; 16k cycles make RESET
sts WDTCR,tmp ;
там где надо ресетить собачку вписываем
Код
wdr ; watch dog reset
все.
Сообщение отредактировал IgorKossak - Feb 11 2015, 22:06
Причина редактирования: [codebox] для длинного кода, [code] - для короткого