當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一。 窗口看門狗和獨(dú)立看門狗的區(qū)別1)獨(dú)立看門狗沒有中斷,窗口看門狗有中斷2)獨(dú)立看門狗有硬件軟件之分,窗口看門狗只能軟件控制3)獨(dú)立看門狗只有下限,窗口看門狗又下限和上限4)獨(dú)立看門狗是12位遞減的。窗口看

一。 窗口看門狗和獨(dú)立看門狗的區(qū)別



1)獨(dú)立看門狗沒有中斷,窗口看門狗有中斷

2)獨(dú)立看門狗有硬件軟件之分,窗口看門狗只能軟件控制

3)獨(dú)立看門狗只有下限,窗口看門狗又下限和上限

4)獨(dú)立看門狗是12位遞減的。窗口看門狗是7位遞減的

5)獨(dú)立看門狗是用的內(nèi)部的大約40KHZ RC振蕩器,窗口看門狗是用的系統(tǒng)時(shí)鐘APB1ENR

接下來介紹一下獨(dú)立看門狗和窗口看門狗,這里我們就不講解程序了,很簡單的,配置一下寄存器就可以使用了。

獨(dú)立看門狗沒有中斷功能,只要在計(jì)數(shù)器減到0(下限)之前,重新裝載計(jì)數(shù)器的值,就不會(huì)產(chǎn)生復(fù)位,獨(dú)立看門夠有硬件和軟件之分,硬件是通過燒寫器的“設(shè)定選項(xiàng)幾節(jié)等”配置,一旦開啟了硬件看門狗,那么就停不下來了,只能在重新配置“設(shè)定選項(xiàng)幾節(jié)等”才能關(guān)掉硬件看門狗,軟件看門狗只需要設(shè)置IWDG->KR=0XCCCC;就可以啟動(dòng)看門狗了,軟件狗可以在系統(tǒng)復(fù)位時(shí)關(guān)掉,如果在在初始化里開啟軟件看門狗,那就開啟了軟件看門狗,

獨(dú)立看門狗是12位遞減的寄存器,使用片子內(nèi)部的RC振蕩器,這個(gè)振蕩器是關(guān)不掉的。

窗口看門狗是7位遞減計(jì)數(shù)器,有中斷,這個(gè)中斷的作用是在計(jì)數(shù)器達(dá)到下限0x40的時(shí)候,產(chǎn)生中斷,讓你喂狗,如果你不喂狗,計(jì)數(shù)器的值變?yōu)?x3f的時(shí)候,將會(huì)產(chǎn)生系統(tǒng)復(fù)位,即使是喂狗,也應(yīng)該在中斷里快速喂狗,要不時(shí)間長了計(jì)數(shù)器減一也會(huì)變成0x3f產(chǎn)生復(fù)位,這個(gè)時(shí)間根據(jù)芯片手冊的公式進(jìn)行計(jì)算即可得到,窗口看門狗只有軟件開啟方式,還有一個(gè)上限值,這個(gè)值如果大于計(jì)數(shù)器的初始值,那么就沒有任何作用了,這個(gè)值小于計(jì)數(shù)器的初始值得時(shí)候,當(dāng)計(jì)數(shù)器的值大于上限值時(shí)你對計(jì)數(shù)器進(jìn)行裝載,將會(huì)產(chǎn)生復(fù)位,只有在計(jì)數(shù)器減到小于上限值時(shí),你才能重新裝載計(jì)數(shù)器,意思就是說只有計(jì)數(shù)器的值在上限值和下限值之間你才能裝載計(jì)數(shù)器,否則就會(huì)產(chǎn)生系統(tǒng)復(fù)位,當(dāng)上限值小于下限值,也沒有意義。

獨(dú)立看門狗Iwdg——獨(dú)立于系統(tǒng)之外,因?yàn)橛歇?dú)立時(shí)鐘,所以不受系統(tǒng)影響的系統(tǒng)故障探測器。主要用于監(jiān)視硬件錯(cuò)誤。

窗口看門狗wwdg——是系統(tǒng)內(nèi)部的故障探測器,時(shí)鐘與系統(tǒng)相同。如果系統(tǒng)時(shí)鐘不走了,這個(gè)狗也就失去作用了。主要用于監(jiān)視軟件錯(cuò)誤。

//發(fā)現(xiàn)1:當(dāng)窗口值大于等于計(jì)數(shù)器的值,無論怎么更改配置的順序,都是正確的運(yùn)行結(jié)果

//發(fā)現(xiàn)2:當(dāng)窗口值小于計(jì)數(shù)器的值,順序一旦改變就運(yùn)行錯(cuò)誤

經(jīng)過測試發(fā)現(xiàn),當(dāng)初始化的順序不是正常順序的話,就會(huì)把WWDG->SR置1,為什么我也不知道,誰知道片子里面怎么搞的。你在開啟中斷就進(jìn)入中斷的,這時(shí)你又進(jìn)行喂狗,就會(huì)復(fù)位的,因?yàn)檫@時(shí)計(jì)數(shù)器的值>上限窗口的值,所以會(huì)復(fù)位,所以就會(huì)一直出錯(cuò)下去

解決辦法是,初始話的時(shí)候最后兩句是先清除中斷標(biāo)志然后在開啟中斷,如果你不這么干,那么在初始化的時(shí)候很可能把WWDG->SR置位,那么你在開啟中斷,就會(huì)毫不猶豫的進(jìn)入中斷,你在中斷重裝計(jì)數(shù)器值得時(shí)候,就會(huì)產(chǎn)生復(fù)位


二。窗口看門狗的 3 個(gè)寄存器

1.控制寄存器(WWDG_CR)


WDGA位:看門狗的激活位,該位由軟件置1,并且一定要注意的是該位一旦設(shè)置,就只能在硬件復(fù)位后才能清零了。

T[6: 0]用來存儲(chǔ)看門狗的計(jì)數(shù)器值

2.配置寄存器(WWDG_CFR)


W0-W6:設(shè)置上窗口值

WDGTB:設(shè)置計(jì)數(shù)器的計(jì)數(shù)頻率 ,PCLK1也就是APB1的時(shí)鐘

EWI:提前喚醒中斷,我們一般用該位來設(shè)置中斷,當(dāng)窗口看門狗的計(jì)數(shù)器值減到 0X40 的時(shí)候,如果該位設(shè)置,并開啟了中斷,則會(huì)產(chǎn)生中斷,我們可以在中斷里面向 WWDG_CR 重新寫入計(jì)數(shù)器的值,來達(dá)到喂狗的目的。

3.狀態(tài)寄存器(WWDG_SR)

該寄存器用來記錄當(dāng)前是否有提前喚醒的標(biāo)志。該寄存器僅有位 0 有效,其他都是保留位。當(dāng)計(jì)數(shù)器值達(dá)到 40h 時(shí),此位由硬件置 1。它必須通過軟件寫 0 來清除。對此位寫 1 無效。即使中斷未被使能,在計(jì)數(shù)器的值達(dá)到 0X40的時(shí)候,此位也會(huì)被置 1。

4. 喂狗的方法有兩種:

a:中斷的方法

b:查詢的方法,查詢狀態(tài)寄存器

三。啟用窗口看門狗的步驟

1.使能 WWDG 時(shí)鐘

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG 時(shí)鐘使能

2.設(shè)置窗口值和分頻數(shù)

設(shè)置上窗口值的函數(shù)是:

void WWDG_SetWindowValue(uint8_t WindowValue);

設(shè)置分頻數(shù)的函數(shù)是:

void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);

這個(gè)函數(shù)同樣只有一個(gè)入口參數(shù)就是分頻值。決定了計(jì)數(shù)器的計(jì)數(shù)頻率

3.開啟 WWDG 中斷并分組

開啟 WWDG 中斷的函數(shù)為:

WWDG_EnableIT(); //開啟窗口看門狗中斷

接下來是進(jìn)行中斷優(yōu)先級配置,這里就不重復(fù)了,使用 NVIC_Init()函數(shù)即可。

4.設(shè)置計(jì)數(shù)器初始值并使能看門狗

void WWDG_Enable(uint8_t Counter);

該函數(shù)既設(shè)置了計(jì)數(shù)器初始值,同時(shí)使能了窗口看門狗。

5.編寫中斷服務(wù)函數(shù)

在中斷服務(wù)函數(shù)里面也要將狀態(tài)寄存器的 EWIF 位清空。

四。實(shí)例

//保存 WWDG 計(jì)數(shù)器的設(shè)置值,默認(rèn)為最大.

u8 WWDG_CNT=0x7f;

//初始化窗口看門狗

//tr :T[6:0],計(jì)數(shù)器值

//wr :W[6:0],窗口值

//fprer:分頻系數(shù)(WDGTB),僅最低 2 位有效

//Fwwdg=PCLK1/(4096*2^fprer).

void WWDG_Init(u8 tr,u8 wr,u32 fprer)

{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG 時(shí)鐘使能

WWDG_CNT=tr&WWDG_CNT; //初始化 WWDG_CNT.

WWDG_SetPrescaler(fprer); //設(shè)置 IWDG 預(yù)分頻值

WWDG_SetWindowValue(wr); //設(shè)置窗口值

WWDG_Enable(WWDG_CNT); //使能看門狗,設(shè)置 counter

WWDG_ClearFlag(); //清除提前喚醒中斷標(biāo)志位

WWDG_NVIC_Init(); //初始化窗口看門狗 NVIC

WWDG_EnableIT(); //開啟窗口看門狗中斷

}

//重設(shè)置 WWDG 計(jì)數(shù)器的值

void WWDG_Set_Counter(u8 cnt)

{

WWDG_Enable(cnt); //使能看門狗,設(shè)置 counter .

}

//窗口看門狗中斷服務(wù)程序

void WWDG_NVIC_Init()

{

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; //WWDG 中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //搶占 2 子優(yōu)先級 3 組 2

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //搶占 2,子優(yōu)先級 3,組 2

NVIC_Init(&NVIC_InitStructure); //NVIC 初始化

}

void WWDG_IRQHandler(void)

{

WWDG_SetCounter(WWDG_CNT); //當(dāng)禁掉此句后,窗口看門狗將產(chǎn)生復(fù)位

WWDG_ClearFlag(); //清除提前喚醒中斷標(biāo)志位

LED1=!LED1; //LED 狀態(tài)翻轉(zhuǎn)

}

實(shí)驗(yàn)中每喂狗一次,LED1(綠燈)狀態(tài)翻轉(zhuǎn)一次,翻轉(zhuǎn)一次的時(shí)間為:

main()程序中設(shè)置了分頻數(shù)為8,見下表


LED1翻轉(zhuǎn)一次時(shí)間為58.25ms


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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉