beautypg.com

Rainbow Electronics ATmega3290P_V User Manual

Page 47

background image

47

ATmega329/3290/649/6490

2552H–AVR–11/06

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. See “About Code Examples” on page 8.

Table 21. Watchdog Timer Prescale Select

WDP2

WDP1

WDP0

Number of WDT

Oscillator Cycles

Typical Time-out

at V

CC

= 3.0V

Typical Time-out

at V

CC

= 5.0V

0

0

0

16K cycles

17.1 ms

16.3 ms

0

0

1

32K cycles

34.3 ms

32.5 ms

0

1

0

64K cycles

68.5 ms

65 ms

0

1

1

128K cycles

0.14 s

0.13 s

1

0

0

256K cycles

0.27 s

0.26 s

1

0

1

512K cycles

0.55 s

0.52 s

1

1

0

1,024K cycles

1.1 s

1.0 s

1

1

1

2,048K cycles

2.2 s

2.1 s

Assembly Code Example

(1)

WDT_off:

; Reset WDT

wdr

; Write logical one to WDCE and WDE

in

r16, WDTCR

ori

r16, (1<

out

WDTCR, r16

; Turn off WDT

ldi

r16, (0<

out

WDTCR, r16

ret

C Code Example

(1)

void

WDT_off(void)

{

/* Reset WDT */

__watchdog_reset();

/* Write logical one to WDCE and WDE */

WDTCR |= (1<

/* Turn off WDT */

WDTCR = 0x00;

}