在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            Cortex-M3 (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.biyoush.com/article/201611/318452.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)時鐘配置和串口的配置。具體的信息可查詢之前的文章。

            1. #include"LPC1788_REG.h"
            2. #include"uart.h"
            3. #definerWDMOD(*(volatileunsigned*)0x40000000)
            4. #definerWDTC(*(volatileunsigned*)0x40000004)
            5. #definerWDFEED(*(volatileunsigned*)0x40000008)
            6. #definerWDTV(*(volatileunsigned*)0x4000000C)
            7. #definerWDWARNINT(*(volatileunsigned*)0x40000014)
            8. #definerWDWINDOW(*(volatileunsigned*)0x40000018)
            9. charstr[]={"WDT_IRQoccur.rn"};
            10. voidWDT_IRQHandler(void)
            11. {
            12. rICER0|=0x1;
            13. Uart2SendS(str);
            14. rWDMOD&=~(0x1<<3|0x1<<2);
            15. rWDTC=1000000;
            16. rWDMOD|=0x1;
            17. rWDFEED=0xAA;
            18. rWDFEED=0x55;
            19. rISER0|=0x1;
            20. }
            21. intmain(void)
            22. {
            23. unsignedinti,j;
            24. rFIO1DIR|=(1<<18);//GPIO1.18->OUTPUT
            25. Init_Uart2();
            26. rWDTC=1000000;
            27. rWDMOD|=0x1;
            28. rWDFEED=0xAA;
            29. rWDFEED=0x55;
            30. rISER0|=0x1;
            31. while(1)
            32. {
            33. rFIO1PIN|=0x1<<18;
            34. for(i=0;i<10000;i++)
            35. for(j=0;j<1000;j++);
            36. //rWDFEED=0xAA;
            37. //rWDFEED=0x55;
            38. rFIO1PIN&=~(0x1<<18);
            39. for(i=0;i<10000;i++)
            40. for(j=0;j<1000;j++);
            41. }
            42. }
            如果將程序中紅色的兩句喂狗屏蔽,則程序每8S產(chǎn)生一次看門狗超時中斷,并且LED燈閃爍。串口打印信息如下。

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


            評論


            相關(guān)推薦

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

            關(guān)閉