找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6378|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CC2530看門(mén)狗系統(tǒng)源程序與詳細(xì)講解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:254908 發(fā)表于 2017-11-28 21:28 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
看門(mén)狗是在軟件跑飛的情況下CPU自恢復(fù)的一個(gè)方式,當(dāng)軟件在選定的時(shí)間間隔內(nèi)不能置位看門(mén)狗定時(shí)器(WDT),WDT就復(fù)位系統(tǒng)?撮T(mén)狗可用于電噪聲,電源故障或靜電放電等惡劣工作環(huán)境或高可靠性要求的環(huán)境。如果系統(tǒng)不需要應(yīng)用到看門(mén)狗,則WDT可配置成間隔定時(shí)器,在選定時(shí)間間隔內(nèi)產(chǎn)生中斷。 WDT的特性如下:4個(gè)可選擇的時(shí)間間隔看門(mén)狗定時(shí)器模式下產(chǎn)生中斷請(qǐng)求時(shí)鐘獨(dú)立于系統(tǒng)時(shí)鐘,WDT包括一個(gè)15位定時(shí)/計(jì)數(shù)器,它的頻率由32.768KHz的晶振決定。用戶不能查看計(jì)數(shù)器的值工作于各個(gè)電源模式。讓用戶了解幾種看門(mén)狗定時(shí)器的使用


單片機(jī)源程序如下:
  1. /****************************************************************************
  2. * 文 件 名: main.c
  3. * 作    者: Andy
  4. * 修    訂: 01-09
  5. * 版    本: 1.0
  6. * 描    述: 打開(kāi)看門(mén)狗后,得記得喂狗,不然系統(tǒng)就會(huì)不停地復(fù)位了
  7. ****************************************************************************/
  8. #include <ioCC2530.h>

  9. typedef unsigned char uchar;
  10. typedef unsigned int  uint;

  11. #define LED1 P1_0       // P1.0口控制LED1
  12. #define LED2 P1_1       // P1.1口控制LED2


  13. /****************************************************************************
  14. * 名    稱(chēng): DelayMS()
  15. * 功    能: 以毫秒為單位延時(shí) 16M時(shí)約為535,系統(tǒng)時(shí)鐘不修改默認(rèn)為16M
  16. * 入口參數(shù): msec 延時(shí)參數(shù),值越大,延時(shí)越久
  17. * 出口參數(shù): 無(wú)
  18. ****************************************************************************/
  19. void DelayMS(uint msec)
  20. {
  21.     uint i,j;
  22.    
  23.     for (i=0; i<msec; i++)
  24.         for (j=0; j<535; j++);
  25. }

  26. /****************************************************************************
  27. * 名    稱(chēng): InitLed()
  28. * 功    能: 設(shè)置LED燈相應(yīng)的IO口
  29. * 入口參數(shù): 無(wú)
  30. * 出口參數(shù): 無(wú)
  31. ****************************************************************************/
  32. void InitLed(void)
  33. {
  34.     P1DIR |= 0x03;      //P1.0、P1.1定義為輸出
  35.     LED1 = 1;           //默認(rèn)LED燈為熄滅狀態(tài)
  36.     LED2 = 1;
  37. }


  38. void Init_Watchdog(void)
  39. {
  40.     WDCTL = 0x00;       //打開(kāi)IDLE才能設(shè)置看門(mén)狗
  41.     WDCTL |= 0x08;      //定時(shí)器間隔選擇,間隔一秒
  42. }

  43. void FeetDog(void)
  44. {
  45.     WDCTL = 0xa0;       //清除定時(shí)器。當(dāng)0xA跟隨0x5寫(xiě)到這些位,定時(shí)器被清除
  46.     WDCTL = 0x50;
  47.     LED2 = 0;           //系統(tǒng)不復(fù)位LED2燈長(zhǎng)亮
  48. }

  49. /****************************************************************************
  50. * 程序入口函數(shù)
  51. ****************************************************************************/
  52. void main(void)
  53. {
  54.     InitLed();                //調(diào)用初始化函數(shù)
  55.     Init_Watchdog();

  56.     while(1)
  57. ……………………

  58. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
15.看門(mén)狗.zip (303.76 KB, 下載次數(shù): 14)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表