<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM8S-獨立看門狗的應(yīng)用

          STM8S-獨立看門狗的應(yīng)用

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          在編寫程序時有時會出現(xiàn)死機或程序跑飛的情況,這時對系統(tǒng)有一定的影響,怎樣讓程序可以自行重啟呢,STM8S中的看門狗就是實現(xiàn)這一功能的,用看門狗檢測程序的執(zhí)行,在看門狗的復(fù)位時間內(nèi)進行喂狗,如果程序在某個地方出現(xiàn)問題,那么就不能及時的進行喂狗,這時系統(tǒng)就會重新啟動,達到檢測的目的。通過觀察小燈的閃爍快慢可以看出系統(tǒng)是否復(fù)位。

          程序如下:

          本文引用地址:http://www.ex-cimer.com/article/201611/321589.htm

          //軟件環(huán)境:IAR FOR STM8 V1.0
          //作者:Nicole

          //功能:STM8的獨立看門狗應(yīng)用

          //日期:2010.11.04

          #include
          #include
          unsigned int i;
          //時鐘配置
          void CLK_Configuration(void)
          {
          //CLK_ICKR= 0x08; //打開低速時鐘
          CLK_CKDIVR = 0x00;
          }

          //延時函數(shù)
          void Delay(unsigned int i)
          {
          unsigned int j;
          while(i--)
          {
          for(j=1000;j>0;j--);
          }

          }
          //IO口配置,控制小燈
          void GPIO_Init(void)
          {
          unsigned int i;
          PD_DDR|=0x01;//PD0輸出,其余保持原功能
          PD_CR1|=0x01;//對應(yīng)位設(shè)置為推挽輸出
          PD_CR2|=0x00;//輸出最大頻率為2MHz

          //小燈閃爍的速度快(為了看的清晰循環(huán)4次)
          for(i=0;i<4;i++)
          {
          PD_ODR=0xff;
          Delay(200);
          PD_ODR=0xfe;
          Delay(200);
          }
          }


          //看門狗配置

          void IWDG_Init(void)
          {
          IWDG_KR = 0xCC; //啟動IWDG
          IWDG_KR = 0x55; //解除 PR 及 RLR 的寫保護
          IWDG_RLR = 0xff; //看門狗計數(shù)器重裝載數(shù)值
          IWDG_PR = 0x06; //分頻系數(shù)為256,最長超時時間為:1.02S
          IWDG_KR = 0xAA; //刷新IDDG,避免產(chǎn)生看門狗復(fù)位,同時恢復(fù) PR 及 RLR 的寫保護狀態(tài)
          void main(void)
          {
          CLK_Configuration(); // 開啟外部時鐘
          GPIO_Init();// 初始化端口
          IWDG_Init();// 初始化外部看門狗
          while(1)
          {
          PD_ODR = 0xff;//PD0為輸出1,LED
          Delay(1000);//延時長小燈閃爍慢些

          PD_ODR = 0xfe;//PD0為輸出0,LED亮
          Delay(1000);
          }

          //程序中沒有及時喂狗,所以觀察到小燈先閃爍快些,然后閃爍慢些,達到看門狗的復(fù)位時間系統(tǒng)重啟,循環(huán)上述過程
          }



          關(guān)鍵詞: STM8S獨立看門

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();