www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一、ATMEGA128數(shù)據(jù)手冊看門狗定時(shí)器看門狗定時(shí)器由獨(dú)立的1 Mhz 片內(nèi)振蕩器驅(qū)動(dòng)。這是VCC= 5V 時(shí)的典型值。請參見特性數(shù)據(jù)以了解其他VCC電平下的典型值。通過設(shè)置看門狗定時(shí)器的預(yù)分頻器可以調(diào)節(jié)看門狗復(fù)位的時(shí)間間隔

一、ATMEGA128數(shù)據(jù)手冊

看門狗定時(shí)器

看門狗定時(shí)器由獨(dú)立的1 Mhz 片內(nèi)振蕩器驅(qū)動(dòng)。這是VCC= 5V 時(shí)的典型值。請參見特性數(shù)據(jù)以了解其他VCC電平下的典型值。通過設(shè)置看門狗定時(shí)器的預(yù)分頻器可以調(diào)節(jié)看門狗復(fù)位的時(shí)間間隔,如P53 Table 22 所示。看門狗復(fù)位指令WDR用來復(fù)位看門狗定時(shí)器。此外,禁止看門狗定時(shí)器或發(fā)生復(fù)位時(shí)定時(shí)器也被復(fù)位。復(fù)位時(shí)間有8 個(gè)選項(xiàng)。如果沒有及時(shí)復(fù)位定時(shí)器,一旦時(shí)間超過復(fù)位周期,ATmega128 就復(fù)位,并執(zhí)行復(fù)位向量指向的程序。具體的看門狗復(fù)位時(shí)序在P50 有說明。

為了防止無意之間禁止看門狗定時(shí)器或改變了復(fù)位時(shí)間,根據(jù)熔絲位M103C 和 WDTON 芯片提供了3 個(gè)不同的保護(hù)級別,如Table 21. 所示。安全級別0 相應(yīng)于ATmega103 的 設(shè)置。使能看門狗定時(shí)器則沒有限制。請參考P 54“ 改變看門狗定時(shí)器配置的時(shí)間序列”。

看門狗定時(shí)器控制寄存器- WDTCR

? Bits 7..5 – Res: 保留
保留位,讀操作返回值為零。

? Bit 4 – WDCE: 看門狗修改使能
清零WDE 時(shí)必須先置位WDCE,否則不能禁止看門狗。一旦置位,硬件將在緊接的4 個(gè) 時(shí)鐘周期之后將其清零。請參考有關(guān)WDE 的說明來禁止看門狗。工作于安全級別1 和2 時(shí)也必須置位WDCE 以修改預(yù)分頻器的數(shù)據(jù),如P 54 “ 改變看門狗定時(shí)器配置的時(shí)間序列” 所示。

? Bit 3 – WDE: 看門狗使能
WDE為"1“時(shí),看門狗使能,否則看門狗將被禁止。只有在WDCE為"1“時(shí)WDE才能清零。以下為關(guān)閉看門狗的步驟:
1. 在同一個(gè)指令內(nèi)對WDCE 和WDE 寫"1“,即使WDE 已經(jīng)為"1“。
2. 在緊接的4 個(gè)時(shí)鐘周期之內(nèi)對WDE 寫"0”。
工作于安全級別2 時(shí)是永遠(yuǎn)無法禁止看門狗定時(shí)器的。參見 P 54 “ 改變看門狗定時(shí)器配置的時(shí)間序列” 。

? Bits 2..0 – WDP2, WDP1, WDP0: 看門狗定時(shí)器預(yù)分頻器2, 1, 和0
WDP2、WDP1 和WDP0 決定看門狗定時(shí)器的預(yù)分頻器,如Table 22 所示。

下面的例子分別用匯編和C 實(shí)現(xiàn)了關(guān)閉WDT 的操作。在此假定中斷處于用戶控制之下 (比如禁止全局中斷) ,因而在執(zhí)行下面程序時(shí)中斷不會(huì)發(fā)生。

匯編代碼例程WDT_off:
; 置位 WDCE 和 WDE
ldir16, (1<outWDTCR, r16
; 關(guān)閉WDT
ldir16, (0<outWDTCR, r16
ret

C 代碼例程

voidWDT_off(void)
{

WDTCR = (1<
WDTCR = 0x00;
}

看門狗初始化程序

C 代碼例程

voidWDT_Init(void)

{

_WDR();//reset watchdog timer
WDTCR |= (1<WDTCR = 0x0F;//enable watchdog timer andset timeout value 1.9 sencond

}

改變看門狗定時(shí)器配置的時(shí)間序列

改變配置的序列根據(jù)不同的安全級別略有不同。下面將逐一說明。

安全級別0

這個(gè)模式與ATmega103 的看門狗操作相兼容??撮T狗的初始狀態(tài)是禁止的,可以沒有限制地通過置位WDE 來使能它,以及改變定時(shí)器溢出周期。禁止看門狗定時(shí)器時(shí)則需要遵 守有關(guān)WDE 的說明。

安全級別1

在這個(gè)模式下,看門狗定時(shí)器的初始狀態(tài)是禁止的,可以沒有限制地通過置位WDE 來使能它(例如:WDTCR|= (1<1. 在同一個(gè)指令內(nèi)對WDCE 和WDE 寫"1“,即使WDE 已經(jīng)為"1“。
2. 在緊接的4 個(gè)時(shí)鐘周期之內(nèi)同時(shí)對WDE 寫"0”,以及為WDP 寫入合適的數(shù)據(jù),而WDCE 則寫"0”。

安全級別2

在這個(gè)模式下,看門狗定時(shí)器總是使能的, WDE 的讀返回值為"1”。 改變定時(shí)器溢出周期需要執(zhí)行一個(gè)特定的時(shí)間序列:
1. 在同一個(gè)指令內(nèi)對WDCE和WDE寫"1“。雖然WDE總是為置位狀態(tài),也必須寫"1“以啟動(dòng)時(shí)序。
2. 在緊接的4 個(gè)時(shí)鐘周期之內(nèi)同時(shí)對WDCE 寫"0”,以及為WDP 寫入合適的數(shù)據(jù)。WDE 的數(shù)值可以任意。

二、看門狗AVR-GCC例程

頭文件:#include ,包含看門狗復(fù)位命令 _WDR();

avr-libc 提供三個(gè)API 支持對器件內(nèi)部Watchdog 的操作,它們分別是:
wdt_reset() // Watchdog 復(fù)位
wdt_enable(timeout) // Watchdog 使能
wdt_disable() // Watchdog 禁止
調(diào)用上述函數(shù)前要包含頭文件 wdt.h ,wdt.h 中還定義Watchdog 定時(shí)器超時(shí)符號常量,它們用于為wdt_enable 函數(shù)提供timeout 值。符號常量分別如下:
符號常量值含意
WDTO_15MS Watchdog定時(shí)器15 毫秒超時(shí)
WDTO_30MS Watchdog定時(shí)器30 毫秒超時(shí)
WDTO_60MS Watchdog定時(shí)器60 毫秒超時(shí)
WDTO_120MS Watchdog定時(shí)器120 毫秒超時(shí)
WDTO_250MS Watchdog定時(shí)器250 毫秒超時(shí)
WDTO_500MS Watchdog定時(shí)器500 毫秒超時(shí)
WDTO_1S Watchdog定時(shí)器1 秒超時(shí)
WDTO_2S Watchdog定時(shí)器2 秒超時(shí)
Watchdog 測試程序:
在CA-M8 上執(zhí)行此程序時(shí)應(yīng)打開S1-8(LEDY),使黃色發(fā)光管連接PB0 引腳。

#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define SET_LED PORTB&=0XFE //PB0 接黃色發(fā)光管

#define CLR_LED PORTB|=0X01
//誤差不會(huì)太大的延時(shí)1ms 函數(shù)
void DelayMs(uint ms)
{
uint i;
for(i=0;i
_delay_loop_2(4 *250);
}
int main(void)
{
DDRB=_BV(PB0);
PORTB=_BV(PB0); //CLR_LED
//WDT 計(jì)數(shù)器同期為一秒
wdt_enable(WDTO_1S);
wdt_reset();//喂狗
DelayMs(500);
SET_LED;
//等待餓死狗
DelayMs(5000);
SET_LED;
while(1)
wdt_reset();
}
執(zhí)行結(jié)果:
CA-M8 上的黃色發(fā)光管不斷的閃爍,證明了Watchdog 使MCU 不斷的復(fù)位。

三、注意事項(xiàng)

如果循環(huán)體內(nèi)每循環(huán)一次的時(shí)間不超過看門狗的復(fù)位時(shí)間,主要喂狗一次就可以,否則需要多次喂狗。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時(shí)機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個(gè)維度,系統(tǒng)分析看門狗初始化的最佳實(shí)踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

單片機(jī)定時(shí)器通過晶振頻率來產(chǎn)生精準(zhǔn)的計(jì)數(shù)脈沖,從而實(shí)現(xiàn)微秒級別的時(shí)間控制。 單片機(jī)定時(shí)器依托于一個(gè)穩(wěn)定的計(jì)數(shù)器,該計(jì)數(shù)器與單片機(jī)上的晶振部件相連。晶振經(jīng)過12分頻后,為單片機(jī)提供穩(wěn)定且精準(zhǔn)的1MHZ脈沖。由于晶振的頻率極...

關(guān)鍵字: 單片機(jī) 定時(shí)器

編碼器?是一種傳感器,主要用于測量旋轉(zhuǎn)運(yùn)動(dòng)的角度、角速度和位移等參數(shù)。常見的編碼器類型包括增量式編碼器和絕對值編碼器,前者通過檢測脈沖的增加或減少來測量旋轉(zhuǎn)方向和距離,后者則直接輸出當(dāng)前的絕對位置信息?。

關(guān)鍵字: 編碼器? 定時(shí)器

一款語音控制的番茄時(shí)間定時(shí)器,內(nèi)置Seeed Studio XIAO ESP32S3感測和圓形顯示。用免提時(shí)間管理保持高效!

關(guān)鍵字: 定時(shí)器 ESP32S3 語音控制

【2025年3月20日, 德國慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼: IFNNY)近日宣布,其旗下ModusToolboxTM開發(fā)平臺(tái)中的AIROC?...

關(guān)鍵字: MCU 物聯(lián)網(wǎng) 定時(shí)器

看門狗是實(shí)現(xiàn)嵌入式計(jì)算機(jī)系統(tǒng)運(yùn)行狀態(tài)監(jiān)控的一種措施 , 能夠有效提高系統(tǒng)運(yùn)行可靠性 。針對HKSP6102處理器在嵌入式計(jì)算機(jī)中的應(yīng)用 ,分析了通用看門狗的設(shè)計(jì)方法及其特點(diǎn);最后介紹了數(shù)據(jù)處理模塊的看門狗設(shè)計(jì)方法 ,基于...

關(guān)鍵字: 看門狗 嵌入式計(jì)算機(jī) 監(jiān)控

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是一種重要的故障檢測和恢復(fù)機(jī)制。當(dāng)系統(tǒng)因軟件錯(cuò)誤、硬件故障或外部干擾而陷入異常狀態(tài)時(shí),看門狗能夠自動(dòng)觸發(fā)復(fù)位操作,使系統(tǒng)恢復(fù)到正常運(yùn)行狀態(tài)。本文將深入探...

關(guān)鍵字: 嵌入式系統(tǒng) 看門狗

眾所周知,說到延時(shí),很多人都會(huì)想到用軟件件來實(shí)現(xiàn),比如定時(shí)器之類的。今天就來說說用硬件來實(shí)現(xiàn)定時(shí)的方式,雖說沒有那么準(zhǔn),但是有些場合還是用得到的。

關(guān)鍵字: CD4060 定時(shí)器

如果定時(shí)器的重裝值和分頻設(shè)置不正確,會(huì)導(dǎo)致PWM輸出的頻率和占空比不準(zhǔn)確,從而產(chǎn)生誤差?1。

關(guān)鍵字: 定時(shí)器 分頻

為了保護(hù)個(gè)人信息和網(wǎng)絡(luò)設(shè)備的安全,專家們致力于開發(fā)各種安全技術(shù)和工具。其中,路由器看門狗功能成為了網(wǎng)絡(luò)安全領(lǐng)域的一大創(chuàng)新。

關(guān)鍵字: 路由器 看門狗
關(guān)閉