av无码国产在线看岛国_日韩精品无码专区国产av影院_在线主播精品国产99热_国模无码一区二区久久_97影院九七理论片男女高清_中文字幕一级毛片_亚洲国产av无码专区亚洲av_成人黄色小说在线观看_H动漫无遮挡在线看中文_国产午夜精品理论片免费视频播放

您好,歡迎訪問上?,F(xiàn)易電子元器件有限公司網(wǎng)站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

?AVR中的定時(shí)器喂狗的作用

文章出處:單片機(jī) 責(zé)任編輯:上?,F(xiàn)易電子元器件有限公司 發(fā)表時(shí)間:2020-11-10

在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)工作,會造成整個(gè)系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測的考慮,便產(chǎn)生了一種專門用于監(jiān)測單片機(jī)程序運(yùn)行狀態(tài)的芯片,俗稱"看門狗"(watchdog)。


其次,看門狗的工作原理是什么?

在系統(tǒng)運(yùn)行以后也就啟動了看門狗的計(jì)數(shù)器,看門狗就開始自動計(jì)數(shù),如果到了一定的時(shí)間還不去清看門狗,那么看門狗計(jì)數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位。所以在使用有看門狗的芯片時(shí)要注意清看門狗(俗稱喂狗)。


AVR中的定時(shí)器和其他所有的單片機(jī)定時(shí)器大同小異,看門狗的作用也是如此,在大多數(shù)項(xiàng)目中,開發(fā)人員一般都是為了省事而將看門狗直接靜默,但是這樣一旦出現(xiàn)外部影響或者一些非人力因素導(dǎo)致的跑飛、程序死機(jī),會導(dǎo)致單片機(jī)不能再自動的重啟。


在一般的使用中,我們在init.c中對看門狗進(jìn)行初始化//一般不建議直接靜默,而應(yīng)該設(shè)置一個(gè)看門狗定時(shí)器的閾值
void wdtinit(void)
{
    #asm("wdr")
    WDTCR=0x1F;
    WDTCR=0x0F;
}

然后在主函數(shù)進(jìn)行一個(gè)喂狗操作。

void main()

{

...

while(1)

{

 wdtflag=1; //喂狗

...

}

}


的確,這樣一般的情況下都可以避免單片機(jī)的非正常死機(jī)。但是在高低溫實(shí)驗(yàn)(見博主前文)或者其他的時(shí)候,不可避免的會導(dǎo)致單片機(jī)的異常重啟,尤其是在程序運(yùn)行時(shí)間大致等于看門狗定時(shí)器的情況下。


除了在中斷進(jìn)行喂狗,一個(gè)比較好的辦法就是在定時(shí)器中進(jìn)行喂狗操作,這樣可以避免中斷函數(shù)進(jìn)入后子函數(shù)太長而導(dǎo)致程序運(yùn)行時(shí)間大于看門狗定時(shí)器的時(shí)間的情況

interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
...
    wdtflag=1;
...
}


上海現(xiàn)易電子元器件有限公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

CopyRight 2020-2025 29711999.com.cn All rights reserved   滬ICP備2020031792號

電話

易經(jīng)理

18019251567

微信

易經(jīng)理

易經(jīng)理

頂部

咨詢