看门狗这个东西曾经没触摸过……
了解它费了一点曲折。
运用它的复位MCU的功用完成LED的闪耀。
准备工作是设定WDT的超时时刻(如1s)
首要使能看门狗(wdt_enable),然后喂狗(wdt_reset),再延时灯的闪耀时刻(delay=0.5s),使灯亮(SET_LED);再用一个恰当的比较长的延时(delay>0.5s)饿死狗。之后MCU重启,如此往复。
(1)延时能够调用库函数,还能够运用定时器;
(2)SET_LED; while(1)
(3)软件看门狗和硬件看门狗。软件看门狗能够用wdt_disable来禁掉。而硬件看门狗不能。AVR能够经过修正熔丝位来别离完成软硬看门狗。
(4)wdt_enable(timeout)的参数timeout表明看门狗的超时时刻,即timeout时刻内不喂狗,狗就会叫,mcu就会复位。
=================================================================================================
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define SET_LED PORTA&=0XFE //PA0输出低电平,黄灯亮
#define CLR_LED PORTA|=0X01
void DelayMs(uint ms)
{
}
int main(void)
{
}