看门狗是如何工作的

[复制链接]
 楼主| guoyt 发表于 2022-4-17 19:49 | 显示全部楼层 |阅读模式
是否可以定时,如何定时,谢谢
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;                        
                              
        }
dingy 发表于 2022-4-17 19:52 | 显示全部楼层
仔细看看芯片资料
 楼主| guoyt 发表于 2022-4-17 19:55 | 显示全部楼层
正在看,我发现,如果上面的key如果不按的话,看门狗复位会从main开头开始运行,但是如果按下的话,复位后会从while循环开始
supernan 发表于 2022-4-17 19:57 | 显示全部楼层
http://baike.baidu.com/item/看门狗/6518878#viewPageContent
xxrs 发表于 2022-4-17 19:59 | 显示全部楼层
嗯,楼主可以先看百度的基本原理,然后看数据手册,然后再有疑难,再来问。
 楼主| guoyt 发表于 2022-4-17 20:03 | 显示全部楼层
谢谢,看过了,也有了基本了解,但是还有些问题
tian111 发表于 2022-4-17 20:05 | 显示全部楼层
这个程序应该有问题吧,main里面连个主循环都没有,怎么运行啊?
supernan 发表于 2022-4-17 20:08 | 显示全部楼层
是啊,喂狗就是应该在主循环里喂的。
dengdc 发表于 2022-4-17 20:11 | 显示全部楼层
就是持续持续的喂狗,就可以了。没有什么特别的地方。
zhanghqi 发表于 2022-4-17 20:13 | 显示全部楼层
独立工作的。
jlyuan 发表于 2022-4-17 20:15 | 显示全部楼层
所以必须的主程序喂狗。
dengdc 发表于 2022-4-17 20:21 | 显示全部楼层
看门狗类似于一个计数器,如果没有定时给它一个喂狗信号(相当于计时清零信号),计数到时就会输出一个脉冲信号。
zhanghqi 发表于 2022-4-17 20:24 | 显示全部楼层
需要仔细看看资料。很棒的。
 楼主| guoyt 发表于 2022-4-17 20:27 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

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