watch

2020-07-28  本文已影响0人  昨天剩下的一杯冷茶

每个项目都会有看门狗的,都比较熟悉,加上只有一个寄存器。


image.png
//watch.c
void init_watch_dog(void)
{
    WDCTL = 0x00;//打开IDLE才能设置看门狗
    WDCTL |= 0x08;//看门狗模式,定时器间隔选择1S间隔
}
void free_watch_dog(void)
{
    WDCTL = 0xa0;
    WDCTL = 0x50;
    
}

//main.c

void main(void)
{

    led_init();
    LED1=1;
    LED2=1;
    LED3=1;
    delay_ms(1000);
    LED2=0;
    LED3=0;
    
    init_watch_dog();

    while(1)
    {
        LED1 = ~LED1;
        delay_ms(500);
        free_watch_dog();
    }
}

实验现象:
设备开始运行的时候,红绿蓝灯会长亮1秒,然后LED1在不停闪烁;
当屏蔽free_watch_dog();函数时,设备会不断重启。

上一篇 下一篇

猜你喜欢

热点阅读