LPC2103之看门狗定时器
0赞WatchDog Timer (WDT)
page225
看门狗定时器的定时范围为TPCLK x 256 x 4 到TPCLK x 232 x 4)。
看门狗定时器的设置步骤如下:
1.在WDTC寄存器设置看门狗定时器 的重装值
2.在WDMOD寄存器设置模式
3.先后写入0xaa和0x55到WDFEED寄存器以启动看门狗定时 器
4.为防止看门狗产生复位/中断,必须在看门狗计 数器下溢前进行喂狗
当看门狗定时器下溢,程序计数器将如同产生了外部复位信号一样 从0x00000000地址重新启动。看门狗定时输出标志(WDTOF)能够检测并是否看门狗导致了复位。WDTOF标志位必须软件清除。
看门狗相关寄存器
寄存器 |
功能 |
访问 |
复位值 |
地址 |
WDMOD |
看门狗模式寄存器,这个寄存器包括了看门狗定时器的基本模式和状态 |
R/W |
0 |
0xE000 0000 |
WDTC |
看门狗定时器常量寄存器,存放定时器计数值 |
R/W |
0XFF |
0xE000 0004 |
WDFEED |
Watchdog Feed sequence register,写入oxaa和0x55重新加载计数值 |
WO |
NA |
0xE000 0008 |
WDTV |
看门狗定时器值寄存器,该寄存器读出定时计数当前值 |
RO |
0XFF |
0xE000 000C |
Watchdog Mode register (WDMOD - 0xE000 0000)
看门狗操作模式选择
WDEN |
WDRESET |
操作模式 |
0 |
X (0 or 1) |
不启动看门狗定时器 |
1 |
0 |
看门狗中断模式。运行看门狗中断,但WDRESET不使能。当看门狗定时器下溢,WDINT标志位将置位并且产生看门狗中断请求 |
1 |
1 |
看门狗复位模式。运行看门狗中断且WDRESET使能。看门狗定时器下溢将复位控制器, |
一旦WDEN或WDRESET位设置后将不能够软件 清除,只有在外部复位或者看门狗定时器下溢时才会被清除。
当看门狗定时器溢出时,看门狗定时器溢出标志位WDTOF置位。该标志位由软件清除。
当看门狗定时器溢出时,看门狗终端标志位WDINT置位。任何复位发生时将清除该标志位。
看门狗模式寄存器
位 |
信号 |
功能 |
复位值 |
0 |
WDEN |
看门狗中断使能位(只可设置) |
0 |
1 |
WDRESET |
看门狗复位使能位(只可设置) |
0 |
2 |
WDTOF |
看门狗定时器溢出标志位 |
0(仅在外部复位后) |
3 |
WDINT |
看门狗中端标志位 |
0 |
7:4 |
- |
保留 |
NA |
Watchdog Timer Constant register (WDTC - 0xE000 0004)
设置定时计数值小于0x000000ff时,自动默认为0x000000ff(此即最小定时计数值)。
看门狗定时器常量寄存 器
位 |
信号 |
功能 |
复位值 |
31:0 |
Count |
定时间隔周期计数值 |
0x000000ff |
Watchdog Feed register (WDFEED - 0xE000 0008)
连续顺序写入0xaa和0x55到该寄存器将重新加载WDTC值到看门狗定时器中。如果WDMOD寄存器中使能了看门狗,此时也将启动看门狗定时器。在WDMOD寄存器设置了WDEN位还不足以使能看门狗(必须连续顺序写入0xaa和0x55到WEFEED寄存器以锁存)。在看门狗产生中断/复位之前必须连续顺序写入0xaa和0x55进行喂狗
Watchdog Timer Value register (WDTV - 0xE000 000C)
WDTV寄存器用于读看门狗定时 器的当前值。
位 |
信号 |
功能 |
复位值 |
31:0 |
Count |
定时间隔周期计数值 |
0x000000ff |