嵌入式成长轨迹59 【Zigbee项目】【CC2430基础实验】【喂狗】

 

本实验与上一个实验都以看门狗为学习目标,在实验二十一学会初始化看门狗,同时也知道了看门狗的作用,本实验着重学习复位看门狗。复位看门狗后小灯不会闪烁。

void FeetDog(void) ;
函数原型:

1 void FeetDog(void) 
2 { 
3   WDCTL = 0xa0; 
4   WDCTL = 0x50; 
5 } 

函数功能:复位看门狗,必须在看门狗时间间隔内调用本函数复位看门狗,否则系统会被强制复位。间隔之后再调用本函数无意义。

 

 1 //main.c
 2 
 3 # include <ioCC2430.h>
 4 
 5 #define uint unsigned int
 6 
 7 #define led1  P1_0
 8 #define led2  P1_1
 9 
10 void Init_IO(void)
11 {
12     P1DIR = 0x03;
13     led1 = 1;
14     led2 = 1;
15 }
16 
17 void Init_Watchdog(void)
18 {
19     WDCTL = 0x00;
20     //时间间隔一秒,看门狗模式
21     WDCTL |= 0x08;
22     //启动看门狗
23 }
24 
25 void Init_Clock(void)
26 {
27     CLKCON = 0X00;
28 }
29 
30 void FeetDog(void)
31 {
32     WDCTL = 0xa0;
33     WDCTL = 0x50;
34 }
35 
36 void Delay(void)
37 {
38     uint n;
39     for(n=50000;n>0;n--);
40     for(n=50000;n>0;n--);
41     for(n=50000;n>0;n--);
42     for(n=50000;n>0;n--);
43     for(n=50000;n>0;n--);
44     for(n=50000;n>0;n--);
45     for(n=50000;n>0;n--);
46 }
47 
48 void main(void)
49 {
50     Init_Clock();
51     Init_IO();
52     Init_Watchdog();
53 
54     led1=0;
55     Delay();
56     led2=0;
57     while(1)
58     {
59         FeetDog();    
60     }    //喂狗指令(加入后系统不复位,小灯不闪烁)
61 }

 

转载于:https://www.cnblogs.com/zeedmood/archive/2012/09/01/2666955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值