49 lines
1.1 KiB
NASM
49 lines
1.1 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2023 by Martin Preuss
|
|
; email : martin@libchipcard.de
|
|
;
|
|
; ***************************************************************************
|
|
; * This file is part of the project "AqHome". *
|
|
; * Please see toplevel file COPYING of that project for license details. *
|
|
; ***************************************************************************
|
|
|
|
|
|
|
|
; ***************************************************************************
|
|
; code
|
|
|
|
|
|
.cseg
|
|
|
|
|
|
watchdogOn:
|
|
ldi r16, (1<<WDE) | (1<<WDP0) ; about 32ms period
|
|
out WDTCSR, r16
|
|
ldi r16, (1<<WDP0) ; about 32ms period
|
|
out WDTCSR, r16
|
|
ori r16, (1<<WDE)
|
|
out WDTCSR, r16
|
|
ret
|
|
|
|
|
|
|
|
watchdogOff:
|
|
wdr ; reset WDT
|
|
ldi r16, (0<<WDRF) ; clear WDRF bit in MCUSR
|
|
out MCUSR, r16
|
|
|
|
in r16, WDTCSR
|
|
ori r16, (1<<WDCE)|(1<<WDE)
|
|
push r15
|
|
in r15, SREG
|
|
cli
|
|
out WDTCSR, r16
|
|
ldi r16, (0<<WDE) ; Turn off WDT
|
|
out WDTCSR, r16
|
|
out SREG, r15
|
|
pop r15
|
|
ret
|
|
|
|
|
|
|