您好,歡迎訪問上海意泓電子科技有限責任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機

      ?AVR中的定時器喂狗的作用

      文章出處:單片機 責任編輯:上海意泓電子科技有限責任公司 發(fā)表時間:
      2020
      11-10

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


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

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


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


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

      然后在主函數(shù)進行一個喂狗操作。

      void main()

      {

      ...

      while(1)

      {

       wdtflag=1; //喂狗

      ...

      }

      }


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


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

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


      上海意泓電子科技有限責任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

      CopyRight 2020-2025 www.topsschool.com All rights reserved   滬ICP備2021005866號

      亚洲精品无码va人在线观看,少妇 逼小 水多,国产区免费av,国产精品无码观看

          久久精品小视频| 久久亚洲另类无码不卡一二区| 亚洲一区二区中文字幕| 在线观看国产精品黄| 国产精品泄火熟女| 国产一级黄色| 欧美精彩一区二区91| 2021国产女精品视频网站| 制服丝袜中文字幕在线| 亚洲成av人片无码不卡| 日韩放荡少妇无码视频| 亚洲福利在线看国产精品| 欧美一级专区免费大片| 欧美a级片一区二区在线播放| 看全色黄大色大片免费久久| 亚洲精品一线在线观看| 国产尤物亚洲精品不卡| 久久国产精品无码免费| 欧美日韩国产一区二区三区综合视频在线看| 久久久久久尹人网香蕉| 国产精品久久自在自线不| 中文字幕之不卡无码视频| 无码潮喷中文字幕在线| 精品日韩一区二区三区| 人妻精品中文字幕| 久久免费少妇高潮久久精品99| 日韩精品无码免费专区网站| 99国产精品无码免费| 亚洲日韩最新片无码|