打印
[技术问答]

N76E003的看门狗复位问题

[复制链接]
3902|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
void Enable_WDT_Reset_Config(void)
{
          set_IAPEN;
    IAPAL = 0x04;
    IAPAH = 0x00;
    IAPFD = 0x0F;
    IAPCN = 0xE1;
    set_CFUEN;
    set_IAPGO;                                  //trigger IAP
                while((CHPCON&SET_BIT6)==SET_BIT6);          //check IAPFF (CHPCON.6)
    clr_CFUEN;
    clr_IAPEN;
}
void main (void)
{

  Set_All_GPIO_Quasi_Mode;

        clr_GPIO1;
        Timer0_Delay1ms(50);                                        //toggle I/O to show MCU Reset
        set_GPIO1;
        Timer0_Delay1ms(50);
        clr_GPIO1;
        Timer0_Delay1ms(50);
        set_GPIO1;
        Timer0_Delay1ms(50);

       
//----------------------------------------------------------------------------------------------
// WDT Init !!! ENABLE CONFIG WDT FIRST !!!
// Warning:
// Always check CONFIG WDT enable first, CONFIG not enable, SFR can't enable WDT reset
// Please call Enable_WDT_Reset_Config() function to enable CONFIG WDT reset
//----------------------------------------------------------------------------------------------

                Enable_WDT_Reset_Config();

          TA=0xAA;TA=0x55;WDCON=0x07;                                                //Setting WDT prescale
                set_WDCLR;                                                                                                                //Clear WDT timer
                while((WDCON|~SET_BIT6)==0xFF);                                //confirm WDT clear is ok before into power down mode
                EA = 1;
                set_WDTR;                                                                                                                        //WDT run
               
    while(1)
                {

                        clr_GPIO1;
                        Timer0_Delay1ms(500);
                        set_GPIO1;
                        Timer0_Delay1ms(500);
                        clr_GPIO1;
                        Timer0_Delay1ms(500);
                        set_GPIO1;
                        Timer0_Delay1ms(500);
                        set_PD;
                }
}
自从烧了官方例程的看门狗复位程序后,烧其他的程序也会一直复位,请问各位大佬怎么才能解决这个问题啊?

沙发
wahahaheihei| | 2018-5-27 14:03 | 只看该作者
哈哈,这个程序赖里面不走了。

使用特权

评论回复
板凳
xixi2017| | 2018-5-27 14:28 | 只看该作者
清理干净试试。

使用特权

评论回复
地板
dongliushui| | 2018-5-27 22:58 | 只看该作者
这个芯片是不是看门狗在配置字里启动的,你看下配置字。

使用特权

评论回复
5
dongliushui| | 2018-5-27 23:00 | 只看该作者
楼主,帮你查了手册,还真是在配置字里,我记得这个就是在这设置的,所以你的等于一直开启了看门狗的。
修改配置字取消这个功能。

使用特权

评论回复
6
zhuomuniao110| | 2018-5-27 23:09 | 只看该作者
对,检查一下配置字。你当初设置看门狗的时候修改配置字了吗

使用特权

评论回复
7
飘雪殇|  楼主 | 2018-5-28 09:28 | 只看该作者
dongliushui 发表于 2018-5-27 23:00
楼主,帮你查了手册,还真是在配置字里,我记得这个就是在这设置的,所以你的等于一直开启了看门狗的。
修 ...

是要把WDTEN[3:0]写入1111吗?我试过写入1111也是不行的

使用特权

评论回复
8
yhchen2001| | 2018-5-29 09:23 | 只看该作者
没有用过这个IC , 你应该在while(1) 里 加清 WDT 的命令吧?

使用特权

评论回复
9
mintspring| | 2018-5-29 21:44 | 只看该作者
如果成功的配置字里关闭,那么是不会出现这个问题的。那是总开关。

使用特权

评论回复
10
chenyuanjiyi| | 2019-11-23 11:47 | 只看该作者
clr_WDTEN;是关闭这个吧


关闭还是总复位 烧之前的代码也是会复位
清不掉吗

使用特权

评论回复
11
chenyuanjiyi| | 2019-11-23 11:47 | 只看该作者
楼主解决了吗

使用特权

评论回复
12
chenyuanjiyi| | 2019-11-23 14:16 | 只看该作者
我在论坛里逛到说是用官方的一个人软件可以修改配置字 KEIL里没有那个开关的参数
关于N76E003的配置字 如何修改的问题
https://bbs.21ic.com/icview-2390160-1-1.html?fromuser=chenyuanjiyi
(出处: 中国电子网技术论坛)

使用特权

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

本版积分规则

5

主题

20

帖子

1

粉丝