當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 看門狗定時(shí)器用來(lái)防止程序因供電電源、空間電磁干擾或其它原因引起的強(qiáng)烈干擾噪聲而跑飛的事故。在很多單片機(jī)中都內(nèi)置了看門狗,看門狗本身是一個(gè)定時(shí)器,當(dāng)定時(shí)器溢出時(shí)即進(jìn)行系統(tǒng)復(fù)位,因此需要在程序

看門狗定時(shí)器用來(lái)防止程序因供電電源、空間電磁干擾或其它原因引起的強(qiáng)烈干擾噪聲而跑飛的事故。在很多單片機(jī)中都內(nèi)置了看門狗,看門狗本身是一個(gè)定時(shí)器,當(dāng)定時(shí)器溢出時(shí)即進(jìn)行系統(tǒng)復(fù)位,因此需要在程序中對(duì)看門狗定時(shí)器進(jìn)行清零,即常說的喂狗。
由于我用過AVR的單片機(jī),和AVR的相比,MSP430的看門狗要靈活的多,首先默認(rèn)看門狗是開著的,因此如果不使用看門狗的話要關(guān)閉,指令如下:
WDTCTL = WDTPW + WDTHOLD
如果打開看門狗則需要在程序中清零,指令如下:
WDTCTL=WDTPW+WDTCNTCL

這只是基本的應(yīng)用,430的看門狗要稍微復(fù)雜一些,首先從IAR的頭文件中看看定義了幾種工作狀態(tài):

  1. /*WDT-intervaltimes[1ms]codedwithBits0-2*/

  2. /*WDTisclockedbyfSMCLK(assumed1MHz)*/

  3. #defineWDT_MDLY_32(WDTPW+WDTTMSEL+WDTCNTCL)/*32msinterval(default)*/

  4. #defineWDT_MDLY_8(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)/*8ms"*/

  5. #defineWDT_MDLY_0_5(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)/*0.5ms"*/

  6. #defineWDT_MDLY_0_064(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)/*0.064ms"*/

  7. /*WDTisclockedbyfACLK(assumed32KHz)*/

  8. #defineWDT_ADLY_1000(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)/*1000ms"*/

  9. #defineWDT_ADLY_250(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)/*250ms"*/

  10. #defineWDT_ADLY_16(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)/*16ms"*/

  11. #defineWDT_ADLY_1_9(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)/*1.9ms"*/

  12. /*Watchdogmode->resetafterexpiredtime*/

  13. /*WDTisclockedbyfSMCLK(assumed1MHz)*/

  14. #defineWDT_MRST_32(WDTPW+WDTCNTCL)/*32msinterval(default)*/

  15. #defineWDT_MRST_8(WDTPW+WDTCNTCL+WDTIS0)/*8ms"*/

  16. #defineWDT_MRST_0_5(WDTPW+WDTCNTCL+WDTIS1)/*0.5ms"*/

  17. #defineWDT_MRST_0_064(WDTPW+WDTCNTCL+WDTIS1+WDTIS0)/*0.064ms"*/

  18. /*WDTisclockedbyfACLK(assumed32KHz)*/

  19. #defineWDT_ARST_1000(WDTPW+WDTCNTCL+WDTSSEL)/*1000ms"*/

  20. #defineWDT_ARST_250(WDTPW+WDTCNTCL+WDTSSEL+WDTIS0)/*250ms"*/

  21. #defineWDT_ARST_16(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1)/*16ms"*/

  22. #defineWDT_ARST_1_9(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)/*1.9ms"*/


從頭文件的定義中可以看出主要有兩種方式,一種就是當(dāng)做普通的定時(shí)器使用,一種才是作為看門狗,另外就是時(shí)鐘源可選,選擇8M或者32K的晶振來(lái)獲得不同的延時(shí),通過上面可以看出看門狗定時(shí)器最大的時(shí)間可以到1S,在程序中可以靈活的利用看門狗定時(shí)器實(shí)現(xiàn)想要的功能。

下面介紹兩個(gè)典型應(yīng)用:
1、在動(dòng)態(tài)數(shù)碼管顯示中的應(yīng)用,具體代碼可以參考我之前的筆記,部分代碼如下:
WDTCTL = WDT_ADLY_1_9; // 設(shè)置內(nèi)部看門狗工作在定時(shí)器模式,1.9ms中斷一次
//可以去看頭文件中具體的配置,這里使用的手表晶振64分頻計(jì)算可得是1.9ms
IE1 |= WDTIE; // 使能看門狗中斷

__interrupt void watchdog_timer(void)
{
}
這個(gè)程序主要是將看門狗定時(shí)器當(dāng)做普通定時(shí)器使用,1.9ms剛好適合動(dòng)態(tài)掃描間隔,在看門狗中斷中對(duì)數(shù)碼管進(jìn)行動(dòng)態(tài)掃描,這樣使用相對(duì)于開一個(gè)定時(shí)器來(lái)說要有所方便。因此在需要的定時(shí)與看門狗定時(shí)器的幾個(gè)時(shí)間相同時(shí)可以考慮使用看門狗。
2、普通延時(shí)
WDTCTL = WDT_ADLY_1000; //間隔定時(shí)器,定時(shí)1000ms
//延時(shí)2s
for(i = 0; i < 3; i++)
{

IFG1 &= ~WDTIFG;
while(!(IFG1 & WDTIFG));
IFG1 &= ~WDTIFG;
}
這個(gè)程序同樣是將看門狗當(dāng)普通定時(shí)器使用,在主程序中讀取中斷標(biāo)志位,實(shí)現(xiàn)延時(shí)效果,上面的程序?yàn)槭裁词茄訒r(shí)2S自己分析。

這里面舉了兩個(gè)例子,是最近學(xué)習(xí)的一點(diǎn)小體會(huì),當(dāng)然還是不能忘了看門狗的本能工作,在程序較為簡(jiǎn)單時(shí)可以考慮使用看門狗定時(shí)器簡(jiǎn)化設(shè)計(jì)。另外還有一點(diǎn)覺得比較重要的是雖然頭文件中對(duì)寄存器都有了很好的定義,但是還是很有必要對(duì)著頭文件和寄存器把主要的寄存器看一面,弄清每一種工作模式的使用方式和注意點(diǎn)。


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

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

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

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(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日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

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

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

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

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

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

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

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

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

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

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

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

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

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