昭仁 发表于 2017-6-8 15:03:25

关于Sleepmode&WDT问题

各位好
这边有个关于使用16F1829撰写SleepMode 及 Watchdog问题想问各位
我这边写个很简单的程式
当我数值还未到一定值时
先进入Sleep mode 接者等待watchdog打开 这都是OK的
但是我直到数值达到一定值时
成功进入我要的程式阶段(假设成功就会打开LED这是OK的)
我在进入程式阶段这边也写了关闭Watchdog动作
可是发现疑似没有效果
反而会一值重置MCU
感觉好像是没有关闭到Watchdog似的...
我把这部分程式贴给各位看
不好意思 麻烦各位了...

poLED = 0;//Close LED
        WDTCON = 0b00000001;        //Enable WDT
        while(1)
        {
                if(m_value == 0xFF)
                {
                        CLRWDT();
                        poLED = 1; //Open LED
                        WDTCON = 0b00000000; //Disable WDT
                }
                else
                {
                        m_value++;;
                        CLRWDT();
                        SLEEP();
                        CLRWDT();
                }
        }

jyrpxj 发表于 2017-6-8 15:13:07

一般单片机用代码开启开门狗后是无法简单地用代码禁用看门狗的。就算可以,也必须有一套严格的时序来关闭它。
WDTCON = 0b00000001;      //Enable WDT
WDTCON = 0b00000000; //Disable WDT   不可能就这么简单的。

tongdayusu 发表于 2017-6-26 12:52:50

这个...看门狗可以通过代码关掉么?
页: [1]
查看完整版本: 关于Sleepmode&WDT问题