[DemoCode下载] N76E003的看门狗中断

[复制链接]
 楼主| huangcunxiake 发表于 2017-11-17 20:58 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2016 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Nuvoton Technoledge Corp.
  8. //  Website: http://www.nuvoton.com
  9. //  E-Mail : MicroC-8bit@nuvoton.com
  10. //  Date   : Apr/21/2016
  11. //***********************************************************************************************************

  12. //***********************************************************************************************************
  13. //  File Function: N76E003 Watch Dog as pure timer with interrupt demo code
  14. //***********************************************************************************************************

  15. #include "N76E003.h"
  16. #include "Common.h"
  17. #include "Delay.h"
  18. #include "SFR_Macro.h"
  19. #include "Function_define.h"


  20. /************************************************************************************************************
  21. *    WDT interrupt sub-routine
  22. ************************************************************************************************************/
  23. void WDT_ISR (void)   interrupt 10
  24. {

  25.                                         //---------toggle GPIO1---------       
  26.                                                 clr_GPIO1;
  27.                                                 Timer0_Delay1ms(50);
  28.                                                 set_GPIO1;
  29.                                                 Timer0_Delay1ms(50);
  30.                                                 clr_GPIO1;
  31.                                                 Timer0_Delay1ms(50);
  32.                                                 set_GPIO1;
  33.                                                 Timer0_Delay1ms(50);
  34.                                         //---------end toggle GPIO2--------
  35.                 clr_WDTF;
  36.                 set_WDCLR;
  37. }

  38. /************************************************************************************************************
  39. *    Main function
  40. ************************************************************************************************************/
  41. void main (void)
  42. {
  43. /* Note
  44.   WDT timer base is LIRC 10Khz
  45. */
  46.    
  47.   Set_All_GPIO_Quasi_Mode;
  48.        
  49.                                                 clr_GPIO1;
  50.                                                 Timer0_Delay1ms(500);
  51.                                                 set_GPIO1;
  52.                                                 Timer0_Delay1ms(500);
  53.                                                 clr_GPIO1;
  54.                                                 Timer0_Delay1ms(500);
  55.                                                 set_GPIO1;
  56.                                                 Timer0_Delay1ms(500);
  57.        
  58. //WDT init
  59. //--------------------------------------------------------
  60. //Warning:
  61. //Pleaes always check CONFIG WDT disable first
  62. //only when WDT reset disable, WDT use as pure timer
  63. //--------------------------------------------------------
  64.           TA=0xAA;TA=0x55;WDCON=0x07;                  //Setting WDT prescale
  65.                 set_WDTR;                       //WDT run
  66.                 set_WDCLR;                                                                                        //Clear WDT timer
  67.                 set_EWDT;
  68.                 EA =1;

  69. #if 0
  70.     while(1);
  71. #else
  72.                 set_WIDPD;                                                                                         //WDT run in POWER DOWM mode setting if needed
  73.                 while (1)
  74.                 {
  75.                         set_PD;
  76.                                         //---------toggle GPIO1---------       
  77.                                                 clr_P04;
  78.                                                 Timer1_Delay10ms(5);
  79.                                                 set_P04;
  80.                                                 Timer1_Delay10ms(5);
  81.                                                 clr_P04;
  82.                                                 Timer1_Delay10ms(5);
  83.                                                 set_P04;
  84.                                                 Timer1_Delay10ms(5);
  85.                                         //---------end toggle GPIO1---------
  86.                 }
  87. #endif
  88. }


 楼主| huangcunxiake 发表于 2017-11-17 21:01 | 显示全部楼层
看门狗用好了,可以做很多事情。
yiyigirl2014 发表于 2017-11-17 21:02 | 显示全部楼层
这就是把看门狗定时器作为一个中断时钟。。
wanduzi 发表于 2017-11-17 21:52 | 显示全部楼层
进入中断后闪烁几下提示。
wahahaheihei 发表于 2017-11-17 22:01 | 显示全部楼层
有时候用看门狗,设计时候,就要避免那个死等的程序了。
734774645 发表于 2017-11-20 15:59 | 显示全部楼层
看门狗好用,但是规划好才行。
643757107 发表于 2017-11-20 16:49 | 显示全部楼层
这个看门狗这么好用,简单的操作就搞定了。
chuanmeng51 发表于 2017-11-21 18:10 | 显示全部楼层
请问,如何用软件去使能看门狗功能呀??
配置字不知道如何去改。
稳稳の幸福 发表于 2017-11-21 20:49 | 显示全部楼层
用法超级简单,官方为开发人员考虑全面。
jiekou001 发表于 2017-11-27 19:46 | 显示全部楼层
如果有死等的语句就没法喂狗了,就会死机。
734774645 发表于 2017-11-27 20:14 | 显示全部楼层
干嘛要死等呢,如果有按键检测这种,就是直接判断,不等,如果当时不是这个状态,就跳过去执行下一条,当然了,所有操作的周期不能超过规定的按键响应时间。
杨德金 发表于 2019-1-23 20:14 | 显示全部楼层
zhuomuniao110 发表于 2019-1-24 11:15 | 显示全部楼层
看门狗大部分时候不需要的。应该先把程序设计好。然后再搞看门狗,要不然你不确定多少时间喂狗合适。
奇立电源 发表于 2019-4-23 23:06 来自手机 | 显示全部楼层
奇怪得很,这个代码仿真没问题,脱机运行就唤不醒,不敢用啊,欠压设的2.2v
奇立电源 发表于 2019-4-23 23:12 来自手机 | 显示全部楼层
还有就是仿真器也不好用,慢。。
condition 发表于 2019-4-26 19:40 | 显示全部楼层
感谢分享,学习一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

3700

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部