單元七-看門狗應(yīng)用_第1頁
單元七-看門狗應(yīng)用_第2頁
單元七-看門狗應(yīng)用_第3頁
單元七-看門狗應(yīng)用_第4頁
單元七-看門狗應(yīng)用_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單元七看門狗應(yīng)用

2018-01-282喂狗應(yīng)用目錄1

看門狗定時器應(yīng)用任務(wù)一看門狗定時器應(yīng)用一、任務(wù)描述使用CC2530看門狗控制LED進行周期性閃爍,實現(xiàn)自動復(fù)位。具體要求如下。①LED周期性閃爍時間間隔為1s。②看門狗定時器工作于看門狗定時器模式。任務(wù)一看門狗定時器應(yīng)用二、任務(wù)目標(biāo)1.訓(xùn)練目標(biāo)①檢驗掌握CC2530單片機看門狗定時器的使用技能。②檢驗掌握看門狗的特性、作用和相關(guān)寄存器配置的技能。任務(wù)一看門狗定時器應(yīng)用二、任務(wù)目標(biāo)2.素養(yǎng)目標(biāo)①培養(yǎng)學(xué)生在工作現(xiàn)場的6S意識和用電安全意識。②愛惜工具,注重場地整潔。③具備積極、主動的探索精神。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識看門狗(WatchDogTimer,WDT)是一種專門用于監(jiān)測單片機程序運行狀態(tài)的芯片。其實質(zhì)是一個計數(shù)器,一般給看門狗一個大數(shù),程序開始運行后,看門狗開始倒計數(shù)。如果程序運行正常,過一段時間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位,重新開始倒計數(shù)。如果看門狗減到0,就認為程序沒有正常工作,將強制整個系統(tǒng)復(fù)位。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識1.看門狗的功能看門狗是在程序跑飛的情況下,將CPU自恢復(fù)的一種方式,當(dāng)軟件在選定的時間間隔內(nèi)不能置位看門狗定時器,看門狗就復(fù)位系統(tǒng)??撮T狗可用于電噪聲、電源故障或靜電放電等惡劣工作環(huán)境或高可靠性要求的環(huán)境。如果系統(tǒng)不需要應(yīng)用看門狗,則看門狗定時器可配置成間隔定時器,在選定時間間隔內(nèi)產(chǎn)生中斷。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(1)定時器模式要在一般定時器模式下設(shè)置看門狗定時器,必須把WDCTL.MODE[1:0]位設(shè)置為11。此時,看門狗定時器就開始工作,且計數(shù)器從0開始遞增。當(dāng)計數(shù)器達到選定間隔值時,CPU將IRCON2.WDTIF置1。如果IEN2.WDTIE=1且IEN0.EA=1,則定時器將產(chǎn)生一個中斷請求(IRCON2.WDTIF/IEN2.WDTIE)。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(1)定時器模式在定時器模式下,可以通過寫入1到WDCTL.CLR[0]來清除定時器內(nèi)容。當(dāng)定時器被清除后,計數(shù)器的內(nèi)容就置為0。寫入00或01到WDCTL.MODE[1:0]可停止定時器,并對其清零。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(1)定時器模式定時器間隔由WDCTL.INT[1:0]位設(shè)置。在定時器操作期間,定時器間隔不能改變,且當(dāng)定時器開始時必須設(shè)置。在定時器模式下,當(dāng)達到定時器間隔時,不會產(chǎn)生復(fù)位。注意:如果選擇了看門狗模式,定時器模式不能在芯片復(fù)位之前選擇。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(2)看門狗模式在系統(tǒng)復(fù)位之后,看門狗定時器就被禁用。要設(shè)置看門狗定時器工作于看門狗模式,必須設(shè)置WDCTL.MODE[1:0]位為10,然后看門狗定時器的計數(shù)器從0開始遞增。在看門狗模式下,一旦看門狗定時器使能,就不可以禁用定時器。因此,如果看門狗定時器已經(jīng)運行于看門狗模式下,則再向WDCTL.MODE[1:0]寫入00或10就不起作用了。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(2)看門狗模式看門狗定時器運行于一個頻率為32.768kHz(當(dāng)使用32kHzXOSC)的看門狗定時器時鐘上。這個時鐘頻率的超時期限為1.9ms、15.625ms、0.25s和1s,分別對應(yīng)64、512、8192和32768的計數(shù)值設(shè)置。如果計數(shù)器達到選定定時器的間隔值,則看門狗定時器為系統(tǒng)產(chǎn)生一個復(fù)位信號。如果在計數(shù)器達到選定定時器的間隔值之前,執(zhí)行了一個看門狗清除序列,則計數(shù)器復(fù)位到0,并繼續(xù)遞增??撮T狗清除序列包括在一個看門狗時鐘周期內(nèi),寫入0xA到WDCTL.CLR[3:0],然后寫入0x5到同一個寄存器位。如果這個序列沒有在看門狗周期結(jié)束之前執(zhí)行完畢,則看門狗定時器為系統(tǒng)產(chǎn)生一個復(fù)位信號。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識2.CC2530看門狗的模式CC2530的看門狗定時器可工作于定時器模式或看門狗模式。(2)看門狗模式在看門狗模式下,看門狗定時器使能,就不能通過寫入WDCTL.MODE[1:0]位改變這個模式,且定時器間隔值也不能改變。在看門狗模式下,看門狗定時器不會產(chǎn)生中斷請求。任務(wù)一看門狗定時器應(yīng)用三、相關(guān)知識3.CC2530看門狗的相關(guān)寄存器CC2530看門狗的控制寄存器為WDCTL,其功能描述如表7.1表示。任務(wù)一看門狗定時器應(yīng)用位位名稱復(fù)位值操作描述7:4CLR[3:0]0000R0/W清除定時器。當(dāng)0xA跟隨0x5寫入這些位,定時器被清除(即加載0)。注意:定時器僅寫入0xA之后,在一個看門狗時鐘周期內(nèi)寫入0x5時才被清除。當(dāng)看門狗定時器是IDLE時,寫入這些位沒有影響。當(dāng)運行于定時器模式時,定時器可以通過寫1到CLR[0](不管其他3位)被清除為0x0000(但是不停止)。3:2MODE[1:0]00R/W模式選擇。該位用于啟動看門狗定時器處于看門狗模式還是定時器模式。當(dāng)處于定時器模式,設(shè)置這些位為IDLE將停止定時器。注意:當(dāng)運行在定時器模式時要轉(zhuǎn)換到看門狗模式,首先停止看門狗定時器,然后啟動看門狗定時器處于看門狗模式。當(dāng)運行于看門狗模式時,寫這些位沒有影響。00:IDLE。01:IDLE(未使用,等于00設(shè)置)。10:看門狗模式。11:定時器模式。1:0INT[1:0]00R/W定時器間隔選擇。這些位選擇定時器間隔定義為32MHz振蕩器周期的規(guī)定數(shù)。注意間隔只能當(dāng)看門狗定時器處于IDLE時改變,因此間隔必須在定時器啟動的同時設(shè)置。00:定時周期為1s,以32.768kHz時鐘計算。01:定時周期為0.25s。10:定時周期為15.625ms。11:定時周期為1.9ms。表7.1CC2530看門狗控制寄存器WDCTL(0xC9)的描述任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(1)定時時間間隔設(shè)置要設(shè)置定時時間間隔為1s,首先設(shè)置系統(tǒng)時鐘源振蕩周期為32kHz,可通過時鐘控制命令寄存器CLKCONCMD.OSC32K位來設(shè)定。然后設(shè)定看門狗定時器控制寄存器WDCTL.INT[1:0]為00(即設(shè)定時間間隔為1s)。設(shè)置代碼如下。

CLKCONCMD&=0x80;//系統(tǒng)時鐘源選擇32kHzWDCTL=0x00;//時間間隔1s任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(2)看門狗定時器工作模式設(shè)置設(shè)置看門狗定時器為看門狗模式,即設(shè)置WDCTL.MODE[1:0]位為10。設(shè)置代碼如下。WDCTL=0x00;//看門狗模式任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(3)喂狗設(shè)置看門狗清除序列包括在一個看門狗時鐘周期內(nèi),寫入0xA到WDCTL.CLR[3:0],然后寫入0x5到同一個寄存器位。即對寄存器WDCTL進行如下配置。

WDCTL|=0xA0;WDCTL|=0x50;但本任務(wù)要求LED周期性閃爍,自動復(fù)位,所以在規(guī)定的時間間隔1s內(nèi)不必對其清零(喂狗)。任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計對系統(tǒng)的各部分功能分別用函數(shù)實現(xiàn),然后通過主函數(shù)調(diào)用各函數(shù)即可。(1)LED初始化voidled_Init(void){P1SEL=0x00;//P1為通用I/O口P1DIR|=0x01;//P1_0輸出LED1=0;//熄滅LED1

}任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計(2)系統(tǒng)時鐘初始化voidsystemClock_Init(void){unsignedcharclkconcmd,clkconsta;CLKCONCMD&=0x80;

/*等待所選擇的系統(tǒng)時鐘源(主時鐘源)穩(wěn)定*/

clkconcmd=CLKCONCMD;//讀取時鐘控制寄存器CLKCONCMDdo{

clkconsta=CLKCONSTA;//讀取時鐘狀態(tài)寄存器CLKCONSTA}while(clkconsta!=clkconcmd);//直到選擇的系統(tǒng)時鐘源(主時鐘源)穩(wěn)定}任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計(3)軟件延時voiddelay(unsigned

inttime){unsignedinti;unsignedcharj;

for(i=0;i<time;i++){for(j=0;j<240;j++){asm("NOP");//asm是內(nèi)嵌匯編,nop是空操作,執(zhí)行一個指令周期

asm("NOP");

asm("NOP");}}}任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計(4)看門狗初始化voidwatchdog_Init(void){WDCTL=0x00;//看門狗模式,時間間隔1sWDCTL|=0x08;//啟動看門狗}任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計(5)喂狗voidFeedWD(void){WDCTL|=0xA0;WDCTL|=0x50;}任務(wù)一看門狗定時器應(yīng)用四、任務(wù)實施2.代碼設(shè)計(6)主程序voidmain(void){

systemClock_Init();

led_Init();

watchdog_Init();delay(30000);//延時小于1s。若大于1秒,會出現(xiàn)什么情況?LED1=1;//亮LED1while(1){

FeedWD();//喂狗指令(加入后系統(tǒng)不復(fù)位,小燈不閃爍;若注釋,則系統(tǒng)不斷復(fù)位,LED每隔1s閃爍一次)

}}任務(wù)一看門狗定時器應(yīng)用五、任務(wù)小結(jié)看門狗定時器工作于看門狗或定時器兩種模式。任務(wù)一看門狗定時器應(yīng)用六、啟發(fā)與思考在定時器模式下,它就相當(dāng)于普通的定時器,達到定時間隔會產(chǎn)生中斷(查閱ioCC2530.h文件中可知,其中斷向量為WDT_VECTOR)。通過WDCTL.MODE位可進行看門狗定時器模式選擇。任務(wù)二喂狗應(yīng)用一、任務(wù)描述使用CC2530看門狗來控制LED1進行周期性閃爍,實現(xiàn)自動復(fù)位。具體要求如下。①LED1周期性閃爍時間間隔為1s。②看門狗定時器工作于看門狗模式。任務(wù)二喂狗應(yīng)用二、任務(wù)目標(biāo)①檢驗掌握CC2530單片機看門狗定時器的使用技能。②檢驗掌握看門狗的特性、作用和相關(guān)寄存器配置的技能。③檢驗掌握看門狗喂狗應(yīng)用的能力。任務(wù)二喂狗應(yīng)用二、任務(wù)目標(biāo)2.素養(yǎng)目標(biāo)①培養(yǎng)學(xué)生在工作現(xiàn)場的6S意識和用電安全意識。②愛惜工具,注重場地整潔。③具備積極、主動的探索精神。任務(wù)二喂狗應(yīng)用三、相關(guān)知識1.看門狗應(yīng)用看門狗是專門監(jiān)測單片機程序運行狀態(tài)的電路結(jié)構(gòu)。其基本原理是:啟動看門狗定時器后,它就會從0開始計數(shù),若程序在規(guī)定的時間間隔內(nèi)沒有及時對其清零,看門狗定時器就會復(fù)位系統(tǒng)。在看門狗模式下,當(dāng)達到定時間隔時,不會產(chǎn)生中斷,取而代之的是向系統(tǒng)發(fā)送一個復(fù)位信號。任務(wù)二喂狗應(yīng)用三、相關(guān)知識2.CC2530看門狗的配置當(dāng)啟動看門狗定時器后,它就會從0開始計數(shù),若程序在規(guī)定的時間間隔內(nèi)沒有及時對其清零(喂狗),看門狗定時器就會復(fù)位系統(tǒng)(相當(dāng)于重啟),如圖7.1所示。任務(wù)二喂狗應(yīng)用圖7.1看門狗定時器任務(wù)二喂狗應(yīng)用三、相關(guān)知識2.CC2530看門狗的配置在看門狗模式下,看門狗一旦被使能,就不能通過改變WDCTL.MODE[1:0]來改變該模式,而且選定的計數(shù)器最終計數(shù)值也不能被改變。位域的值在看門狗模式下,看門狗不會產(chǎn)生中斷請求。若喂狗超時,則向系統(tǒng)發(fā)送一個重置信號。任務(wù)二喂狗應(yīng)用三、相關(guān)知識2.CC2530看門狗的配置設(shè)置WDCTL.MODE[1:0]位為11,則看門狗定時器工作于定時器模式,看門狗定時器的計數(shù)器從0開始遞增。當(dāng)計數(shù)器達到選定間隔值時,CPU將IRCON2.WDTIF置1。如果IEN2.WDTIE=1且IEN0.EA=1,則看門狗定時器將產(chǎn)生一個中斷請求(IRCON2.WDTIF/IEN2.WDTIE)。任務(wù)二喂狗應(yīng)用三、相關(guān)知識3.喂狗應(yīng)用看門狗的使用可以總結(jié)為:選擇模式→選擇定時器間隔→放狗→喂狗??撮T狗定時器工作看門狗或定時器模式。任務(wù)二喂狗應(yīng)用三、相關(guān)知識3.喂狗應(yīng)用本任務(wù)要求選擇看門狗模式。定時器啟動之后,就會從0開始計數(shù)。在其計數(shù)值達到32768之前(即小于1s),若用以下代碼喂狗。WDCTL=0x0A;WDCTL=0x05;則定時器的計數(shù)值會被清零,然后它會再次從0x0000開始計數(shù),這樣就防止了其發(fā)送復(fù)位信號,表現(xiàn)在開發(fā)板上就是LED一直亮著,不會閃爍。任務(wù)二喂狗應(yīng)用三、相關(guān)知識3.喂狗應(yīng)用喂狗程序一定要嚴格與上述代碼一致,順序顛倒、寫錯、少寫一句都將起不到清零的作用。任務(wù)二喂狗應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(1)定時時間間隔設(shè)置要設(shè)置定時時間間隔為1s,首先設(shè)置系統(tǒng)時鐘源振蕩周期為32kHz,可通過時鐘控制寄存器CLKCONCMD.OSC32K位來設(shè)定,然后設(shè)定看門狗定時器控制寄存器WDCTL.INT[1:0]為00設(shè)定時間間隔為1s。設(shè)置代碼如下。CLKCONCMD&=0x80;//系統(tǒng)時鐘源選擇32kHzWDCTL=0x00;//時間間隔1s任務(wù)二喂狗應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(2)看門狗定時器WDT工作模式設(shè)置設(shè)置WDT為看門狗模式,設(shè)置WDCTL.MODE[1:0]位為10。設(shè)置代碼如下。WDCTL=0x00;//看門狗模式任務(wù)二喂狗應(yīng)用四、任務(wù)實施1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED閃爍周期1s的自動復(fù)位功能。(3)喂狗設(shè)置??撮T狗清除序列包括在一個看門狗時鐘周期內(nèi),寫入0xA到WDCTL.CLR[3:0],然后寫入0x5到同一個寄存器位。即對寄存器WDCTL進行如下配置。WDCTL|=0xA0;WDCT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論