打印
[AVR单片机]

请教 AVR 看门狗的问题!!!

[复制链接]
2351|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教!如下代码:
void main(void)
{
    BYTE main_run_标志寄存器=0;
BYTE tmp;

delay_ms(10);
init_GZ();
//wdt_enable();
//delay_ms(500);
delay_ms(1500);
system_restart:

//CLI();
wdt_enable();//看门狗
init_sys();
//delay_ms(10);
delay_ms(1);
看门狗在此位置是不起作用,我把位置提前以后看门狗就起作用了,代码如下:

void main(void)
{
    BYTE main_run_标志寄存器=0;
BYTE tmp;

delay_ms(10);
init_GZ();
wdt_enable();//看门狗
//delay_ms(500);
delay_ms(1500);
system_restart:

//CLI();
//wdt_enable();
init_sys();
//delay_ms(10);
delay_ms(1);
哪位大师能给解答一下啊!小弟感激不尽!!谢谢,我用的是软件看门狗。

相关帖子

沙发
airwill| | 2013-4-17 09:26 | 只看该作者
delay_ms(1);

时间太短, 看门狗来不及溢出吧

使用特权

评论回复
板凳
qin552011373| | 2013-4-17 10:51 | 只看该作者
你的狗定时时间选的是多少?

使用特权

评论回复
地板
shuidi_wangdan|  楼主 | 2013-4-17 14:35 | 只看该作者
qin552011373 发表于 2013-4-17 10:51
你的狗定时时间选的是多少?

void wdt_enable(void)
{
    WDR();
     WDTCSR=0x18;
    WDTCSR=0x0f;
}

使用特权

评论回复
5
huangxz| | 2013-4-17 14:37 | 只看该作者
呵呵,楼主写的程序好乱啊,我用的很多也没发现WDT会有问题

使用特权

评论回复
6
qin552011373| | 2013-4-17 22:22 | 只看该作者
shuidi_wangdan 发表于 2013-4-17 14:35
void wdt_enable(void)
{
    WDR();

时间间隔你设的多少?不知道乱设的?

使用特权

评论回复
7
shuidi_wangdan|  楼主 | 2013-4-18 07:55 | 只看该作者
qin552011373 发表于 2013-4-17 22:22
时间间隔你设的多少?不知道乱设的?

时间间隔是2S,不是乱设的,设这个时间有什么根据吗?请指点!!谢谢

使用特权

评论回复
8
qin552011373| | 2013-4-18 10:57 | 只看该作者
shuidi_wangdan 发表于 2013-4-18 07:55
时间间隔是2S,不是乱设的,设这个时间有什么根据吗?请指点!!谢谢

在这个时间内  不喂狗 单片机会重启

使用特权

评论回复
9
shuidi_wangdan|  楼主 | 2013-4-18 11:21 | 只看该作者
qin552011373 发表于 2013-4-18 10:57
在这个时间内  不喂狗 单片机会重启

是的,但是程序中看门狗没起作用,我觉得很奇怪,是不是对看门狗初始化时间有要求?我在程序中把看门狗使能函数提前以后看门狗就起作用了。

使用特权

评论回复
10
huangxz| | 2013-4-18 12:53 | 只看该作者
楼主不用纠结了,任何时候启动WDT都是可以的,不信你随便改代码

wdt_test.rar (9.81 KB)


使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!
11
shuidi_wangdan|  楼主 | 2013-4-19 16:51 | 只看该作者
huangxz 发表于 2013-4-18 12:53
楼主不用纠结了,任何时候启动WDT都是可以的,不信你随便改代码

还是纠结!!!!!!!问题依旧啊!!!

使用特权

评论回复
12
qin552011373| | 2013-4-20 09:29 | 只看该作者
直接看看汇编  看看优化成什么语句了

使用特权

评论回复
13
wan-wan1| | 2013-4-28 17:38 | 只看该作者
你只是喂一次狗,有什么作用?喂狗要写在一个死程序里面,每隔一段时间喂一次程序才不会跑飞啊

使用特权

评论回复
14
shuidi_wangdan|  楼主 | 2013-5-4 10:06 | 只看该作者
wan-wan1 发表于 2013-4-28 17:38
你只是喂一次狗,有什么作用?喂狗要写在一个死程序里面,每隔一段时间喂一次程序才不会跑飞啊 ...

我在主程序里喂狗,这里只是初始化一下,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:奇葩满天下,不分你我他! 奋斗!https://bbs.21ic.com/static/image/smiley/chubby/17.gif[/url]

65

主题

549

帖子

3

粉丝