LPC2103之看門狗定時器
page225
看門狗定時器的定時范圍為TPCLK x 256 x 4到TPCLK x 232 x 4)。
看門狗定時器的設(shè)置步驟如下:
?在WDTC寄存器設(shè)置看門狗定時器的重裝值
?在WDMOD寄存器設(shè)置模式
?先后寫入0xaa和0x55到WDFEED寄存器以啟動看門狗定時器
?為防止看門狗產(chǎn)生復(fù)位/中斷,必須在看門狗計數(shù)器下溢前進(jìn)行喂狗
當(dāng)看門狗定時器下溢,程序計數(shù)器將如同產(chǎn)生了外部復(fù)位信號一樣從0x00000000地址重新啟動??撮T狗定時輸出標(biāo)志(WDTOF)能夠檢測并是否看門狗導(dǎo)致了復(fù)位。WDTOF標(biāo)志位必須軟件清除。
看門狗相關(guān)寄存器
寄存器 | 功能 | 訪問 | 復(fù)位值 | 地址 |
WDMOD | 看門狗模式寄存器,這個寄存器包括了看門狗定時器的基本模式和狀態(tài) | R/W | 0 | 0xE000 0000 |
WDTC | 看門狗定時器常量寄存器,存放定時器計數(shù)值 | R/W | 0XFF | 0xE000 0004 |
WDFEED | Watchdog Feed sequence register,寫入oxaa和0x55重新加載計數(shù)值 | WO | NA | 0xE000 0008 |
WDTV | 看門狗定時器值寄存器,該寄存器讀出定時計數(shù)當(dāng)前值 | RO | 0XFF | 0xE000 000C |
Watchdog Mode register (WDMOD - 0xE000 0000)
看門狗操作模式選擇
WDEN | WDRESET | 操作模式 |
0 | X (0 or 1) | 不啟動看門狗定時器 |
1 | 0 | 看門狗中斷模式。運(yùn)行看門狗中斷,但WDRESET不使能。當(dāng)看門狗定時器下溢,WDINT標(biāo)志位將置位并且產(chǎn)生看門狗中斷請求 |
1 | 1 | 看門狗復(fù)位模式。運(yùn)行看門狗中斷且WDRESET使能??撮T狗定時器下溢將復(fù)位控制器, |
一旦WDEN或WDRESET位設(shè)置后將不能夠軟件清除,只有在外部復(fù)位或者看門狗定時器下溢時才會被清除。
當(dāng)看門狗定時器溢出時,看門狗定時器溢出標(biāo)志位WDTOF置位。該標(biāo)志位由軟件清除。
當(dāng)看門狗定時器溢出時,看門狗終端標(biāo)志位WDINT置位。任何復(fù)位發(fā)生時將清除該標(biāo)志位。
看門狗模式寄存器
位 | 信號 | 功能 | 復(fù)位值 |
0 | WDEN | 看門狗中斷使能位(只可設(shè)置) | 0 |
1 | WDRESET | 看門狗復(fù)位使能位(只可設(shè)置) | 0 |
2 | WDTOF | 看門狗定時器溢出標(biāo)志位 | 0(僅在外部復(fù)位后) |
3 | WDINT | 看門狗中端標(biāo)志位 | 0 |
7:4 | - | 保留 | NA |
Watchdog Timer Constant register (WDTC - 0xE000 0004)
設(shè)置定時計數(shù)值小于0x000000ff時,自動默認(rèn)為0x000000ff(此即最小定時計數(shù)值)。
看門狗定時器常量寄存器
位 | 信號 | 功能 | 復(fù)位值 |
31:0 | Count | 定時間隔周期計數(shù)值 | 0x000000ff |
Watchdog Feed register (WDFEED - 0xE000 0008)
連續(xù)順序?qū)懭?xaa和0x55到該寄存器將重新加載WDTC值到看門狗定時器中。如果WDMOD寄存器中使能了看門狗,此時也將啟動看門狗定時器。在WDMOD寄存器設(shè)置了WDEN位還不足以使能看門狗(必須連續(xù)順序?qū)懭?xaa和0x55到WEFEED寄存器以鎖存)。在看門狗產(chǎn)生中斷/復(fù)位之前必須連續(xù)順序?qū)懭?xaa和0x55進(jìn)行喂狗
Watchdog Timer Value register (WDTV - 0xE000 000C)
WDTV寄存器用于讀看門狗定時器的當(dāng)前值。
位 | 信號 | 功能 | 復(fù)位值 |
31:0 | Count | 定時間隔周期計數(shù)值 | 0x000000ff |
評論