看门狗是如何工作的

[复制链接]
 楼主| guoyt 发表于 2021-4-8 22:03 | 显示全部楼层 |阅读模式
是否可以定时,如何定时,谢谢
sfr  WDTRST  =   0xA6;                                 
sbit key = P3^1;                 
/*------------------------------------------------
                    喂狗
------------------------------------------------*/
void Rst_Watchdog( void )
{
        WDTRST  = 0x1E; //先赋值1E 然后赋值E1
    WDTRST  = 0xE1;
}

/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main( void )
{
        int i;
                                   
        Rst_Watchdog();
                                       
        for( i = 0; i < 500; i++)//这里的这个循环有什么用,如果喂狗的话这样好像意义不大
        {
                Rst_Watchdog();               
        }
    P1=0x00;
        while(!key)               
                                
        {
         P1=0x55;                        
                              
        }
}
zwll 发表于 2021-4-8 22:05 | 显示全部楼层
仔细看看芯片资料
 楼主| guoyt 发表于 2021-4-8 22:08 | 显示全部楼层
正在看,我发现,如果上面的key如果不按的话,看门狗复位会从main开头开始运行,但是如果按下的话,复位后会从while循环开始
pengf 发表于 2021-4-8 22:10 | 显示全部楼层
http://baike.baidu.com/item/看门狗/6518878#viewPageContent
heweibig 发表于 2021-4-8 22:13 | 显示全部楼层
嗯,楼主可以先看百度的基本原理,然后看数据手册,然后再有疑难,再来问。
 楼主| guoyt 发表于 2021-4-8 22:15 | 显示全部楼层
谢谢,看过了,也有了基本了解,但是还有些问题
langgq 发表于 2021-4-8 22:20 | 显示全部楼层
这个程序应该有问题吧,main里面连个主循环都没有,怎么运行啊?
juventus9554 发表于 2021-4-8 22:23 | 显示全部楼层
是啊,喂狗就是应该在主循环里喂的。
 楼主| guoyt 发表于 2021-4-8 22:26 | 显示全部楼层
嗯,预料中的结果,多谢大家啦
便携手到老 发表于 2021-4-8 22:27 | 显示全部楼层
就是持续持续的喂狗,就可以了。没有什么特别的地方。
gejigeji521 发表于 2021-4-8 23:58 | 显示全部楼层
独立工作的。
gejigeji521 发表于 2021-4-8 23:58 | 显示全部楼层
所以必须的主程序喂狗。
chenjun89 发表于 2021-4-9 18:02 来自手机 | 显示全部楼层
看门狗类似于一个计数器,如果没有定时给它一个喂狗信号(相当于计时清零信号),计数到时就会输出一个脉冲信号。
明天真的好 发表于 2021-4-10 19:12 | 显示全部楼层
需要仔细看看资料。很棒的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部