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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CortexM3 (NXP LPC1788)之WDT窗口看門狗定時器

          CortexM3 (NXP LPC1788)之WDT窗口看門狗定時器

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          看門狗定時器的用途是在微控制器進(jìn)入錯誤狀態(tài)后的一段合理時間內(nèi)將其復(fù)位??撮T狗被是能后,如果用戶沒有在預(yù)先設(shè)定的時間內(nèi)喂狗,那么會產(chǎn)生一個看門狗事件。

          看門狗定時器的寄存器有看門狗定時器常數(shù)計數(shù)器WDTC,每當(dāng)在喂狗寄存器WDFEED中寫入喂狗序列,WDTC中的值就會被寫入看門狗定時計數(shù)器WDTV,WDTV中的值在看門狗時鐘的驅(qū)動下遞減。我們可以通過設(shè)置看門狗定時器報警中斷寄存器WDWARNINT寄存器,當(dāng)WDWARNINT中的值和WDTV中的值匹配時,可以形成中斷。最重要的還有看門狗模式寄存器WDMOD,它控制著看門狗的使能,復(fù)位,更新模式以及超時標(biāo)識和中斷標(biāo)志。此外還有一個看門狗定時器窗口寄存器WDWINDOW,它決定了喂狗過程中允許的最大的WDTV。

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

          看門狗的時鐘有一個專用的振蕩器,提供了500KHZ的時鐘,該時鐘通過4分頻,提供DWTV計數(shù)。因此在下面的程序中給WDTC賦值1000000,則看門狗計數(shù)的周期為 (1/500KHZ)*1000000*4 = 8S .所以看門狗中斷每8秒產(chǎn)生一次。程序配置看門狗超時不復(fù)位,進(jìn)入超時中斷以后軟件清除中斷標(biāo)志和超時標(biāo)識。

          注意:為了程序的簡潔,省去了之前介紹了的系統(tǒng)時鐘配置和串口的配置。具體的信息可查詢之前的文章。

          #include "LPC1788_REG.h"#include "uart.h"#define rWDMOD	(*(volatile unsigned*)0x40000000)#define rWDTC	(*(volatile unsigned*)0x40000004)#define rWDFEED	(*(volatile unsigned*)0x40000008)#define rWDTV	(*(volatile unsigned*)0x4000000C)#define rWDWARNINT	(*(volatile unsigned*)0x40000014)#define rWDWINDOW	(*(volatile unsigned*)0x40000018)char str[]={"WDT_IRQ occur.rn"};void WDT_IRQHandler(void){rICER0 |= 0x1;Uart2SendS(str);rWDMOD &= ~(0x1<<3|0x1<<2); rWDTC = 1000000;rWDMOD |= 0x1;rWDFEED = 0xAA;rWDFEED = 0x55;rISER0 |= 0x1;}int main(void){unsigned int i,j;rFIO1DIR |= (1<<18); //GPIO1.18 -> OUTPUTInit_Uart2();rWDTC = 1000000;rWDMOD |= 0x1;rWDFEED = 0xAA;rWDFEED = 0x55;rISER0 |= 0x1;while(1){rFIO1PIN |= 0x1<<18;for(i=0; i<10000; i++)for(j=0; j<1000; j++);//      rWDFEED = 0xAA;//      rWDFEED = 0x55;rFIO1PIN &= ~(0x1<<18);for(i=0; i<10000; i++)for(j=0; j<1000; j++);}}
          如果將程序中紅色的兩句喂狗屏蔽,則程序每8S產(chǎn)生一次看門狗超時中斷,并且LED燈閃爍。串口打印信息如下。


          如果打開rWDFEED = 0xAA;rWDFEED = 0x55兩句代碼,由于有喂狗,所以程序不會進(jìn)入超時中斷,串口也就不會有打印信息。


          評論


          技術(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); })();