aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm')
-rw-r--r--amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm22
1 files changed, 22 insertions, 0 deletions
diff --git a/amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm b/amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm
new file mode 100644
index 0000000..4a12261
--- /dev/null
+++ b/amforth-6.5/avr8/devices/atmega3290/words/no-wdt.asm
@@ -0,0 +1,22 @@
+; ( -- )
+; MCU
+; disable watch dog timer at runtime
+VE_NOWDT:
+ .dw $ff04
+ .db "-wdt"
+ .dw VE_HEAD
+ .set VE_HEAD = VE_NOWDT
+XT_NOWDT:
+ .dw PFA_NOWDT
+PFA_NOWDT:
+
+; Reset WDT
+ wdr
+; Write logical one to WDTOE and WDE
+ in_ temp1, WDTCR
+ ori temp1, (1<<WDTOE)|(1<<WDE)
+ out WDTCR, temp1
+; Turn off WDT
+ ldi temp1, (0<<WDE)
+ out_ WDTCR, temp1
+ jmp_ DO_NEXT