WatchDog Timer (WDT)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
page225
看门狗定时器的定时范围为TPCLK x 256 x 4 到TPCLK x 232 x 4)。
看门狗定时器的设置步骤如下:
? 在WDTC寄存器设置看门狗定时器的重装值
? 在WDMOD寄存器设置模式
? 先后写入0xaa和0x55到WDFEED寄存器以启动看门狗定时器
? 为防止看门狗产生复位/中断,必须在看门狗计数器下溢前进行喂狗
当看门狗定时器下溢,程序计数器将如同产生了外部复位信号一样从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 |
文章评论(0条评论)
登录后参与讨论