Rainbow Electronics ATtiny861_V User Manual

Page 47

Advertising
background image

47

2588B–AVR–11/06

ATtiny261/461/861

The following code example shows one assembly and one C function for turning off the WDT.
The example assumes that interrupts are controlled (e.g., by disabling interrupts globally) so that
no interrupts will occur during execution of these functions.

Note:

1. The example code assumes that the part specific header file is included.

Assembly Code Example

(1)

WDT_off:

WDR

; Clear WDRF in MCUSR

ldi

r16, (0<<WDRF)

out

MCUSR, r16

; Write logical one to WDCE and WDE

; Keep old prescaler setting to prevent unintentional Watchdog Reset

in

r16, WDTCR

ori

r16, (1<<WDCE)|(1<<WDE)

out

WDTCR, r16

; Turn off WDT

ldi

r16, (0<<WDE)

out

WDTCR, r16

ret

C Code Example

(1)

void

WDT_off(void)

{

_WDR();

/* Clear WDRF in MCUSR */

MCUSR = 0x00

/* Write logical one to WDCE and WDE */

WDTCR |= (1<<WDCE) | (1<<WDE);

/* Turn off WDT */

WDTCR = 0x00;

}

Advertising