AT90CAN128-16AE ATMEL Corporation, AT90CAN128-16AE Datasheet - Page 56

no-image

AT90CAN128-16AE

Manufacturer Part Number
AT90CAN128-16AE
Description
8-bit Avr Microcontroller With 128K Bytes of Isp Flash And CAN Controller.flash (Kbytes) 128 Vcc (V) 2.7-5.5 EEPROM (Kbytes) 4 SRAM (bytes) 4K CAN (mess. Obj.) 15
Manufacturer
ATMEL Corporation
Datasheet
Timed Sequences for
Changing the
Configuration of the
Watchdog Timer
Safety Level 1
Safety Level 2
56
AT90CAN128
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:
The sequence for changing configuration differs slightly between the two safety levels.
Separate procedures are described for each level.
In this mode, the Watchdog Timer is initially disabled, but can be enabled by writing the
WDE bit to 1 without any restriction. A timed sequence is needed when changing the
Watchdog Time-out period or disabling an enabled Watchdog Timer. To disable an
enabled Watchdog Timer, and/or changing the Watchdog Time-out, the following proce-
dure must be followed:
1. In the same operation, write a logic one to WDCE and WDE. A logic one must be
2. Within the next four clock cycles, in the same operation, write the WDE and
In this mode, the Watchdog Timer is always enabled, and the WDE bit will always read
as one. A timed sequence is needed when changing the Watchdog Time-out period. To
change the Watchdog Time-out, the following procedure must be followed:
1. In the same operation, write a logical one to WDCE and WDE. Even though the
2. Within the next four clock cycles, in the same operation, write the WDP bits as
Assembly Code Example
C Code Example
written to WDE regardless of the previous value of the WDE bit.
WDP bits as desired, but with the WDCE bit cleared.
WDE always is set, the WDE must be written to one to start the timed sequence.
desired, but with the WDCE bit cleared. The value written to the WDE bit is
irrelevant.
WDT_off:
void WDT_off(void)
{
}
; Write logical one to WDCE and WDE
ldi
sts
; Turn off WDT
ldi
sts
ret
/* Write logical one to WDCE and WDE */
WDTCR = (1<<WDCE) | (1<<WDE);
/* Turn off WDT */
WDTCR = 0x00;
1. The example code assumes that the part specific header file is included.
r16, (1<<WDCE)|(1<<WDE)
WDTCR, r16
r16, (0<<WDE)
WDTCR, r16
(1)
(1)
4250C–CAN–03/04

Related parts for AT90CAN128-16AE