avr单片机中看门狗(WDT)都有哪些做用?

avr单片机中哦,WDT希望能详细讲解下这个功能使用哦
2024-11-26 06:08:48
推荐回答(3个)
回答1:

WDT其实就是一个定时器,只是这个定时器的中断向量是指到复位地址,产生中断后芯片就复位了,但也有些单片机看门狗溢出后有专门的中断向量。既然它的中断向量指向复位地址,那么芯片要正常运行,我们肯定要避免它溢出,即喂狗。有些单片机的WDT定时器可以读,所以有人拿WDT来做定时器用的。
单片机一般要有个死循环,不断地执行各个子程序,如果把清WDT定时器(喂狗)的指令放到这个死循环里,那么就会循环一次清(喂狗)一次,WDT不会溢出。但是当程序出错,跑飞时,不会再这样循环,喂狗指令不会再被执行,那么WDT必然会溢出,芯片复位,即相当于重新上电运行。
清狗指令不能放定时器中断里,因此不管程序飞跑到哪里,执行哪里,中断产生后都会执行中断函数,所以在定时器里的清狗指令会使WDT起不到作用(失效)。

回答2:

看门狗的作用是当程序跑飞了,就给程序复位。
看门狗就像个闹钟,当时间到了你就知道该干什么了。
在程序中,你给闹钟定好时间,当定时时间到单片机就自动复位单片机。为了不让闹钟响,所以我们在程序中一有空就把时间调到零。也就是说,在你的程序开始处启动看门狗,并设定看门狗时间。并确定在看门狗时间内就喂下狗。但是一旦程序跑飞,就不可能时时的喂狗了。那当时间到,看门狗就复位单片机

回答3:

防止程序跑飞