打印
[技术问答]

关于N76E003 WDT RESET的例程

[复制链接]
2895|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hk386|  楼主 | 2018-4-14 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

/***********************************************************************
        WDT CONFIG enable
        warning : this macro is only when ICP not enable CONFIG WDT function
        copy this marco code to you code to enable WDT reset.
************************************************************************/
void Enable_WDT_Reset_Config(void)
{
          set_IAPEN;
    IAPAL = 0x04;
    IAPAH = 0x00;          //CONFIG4地址是0004H
    IAPFD = 0x0F;         //数据写入IAPFD,CONFIG4默认是0XFF(WDTEN[3:0] _ _ _ _),配置字“_”最好不要改变,写入0X0F,WDT在空闲/掉电模式下运行,以超时复位器
    IAPCN = 0xE1; //写入命令(IAPB[1:0] POEN PCEN FCTRL[3:0]),1110 0001,(命令编程CONFIG字节)                                                                                                                                          
    set_CFUEN;        //使能IAP擦除/编程CONFIG
    set_IAPGO;  //运行IAP                                //trigger IAP
                while((CHPCON&SET_BIT6)==SET_BIT6);          //check IAPFF (CHPCON.6)
    clr_CFUEN;//关闭
    clr_IAPEN;        //一旦开始IAP,HIRC打开,功耗变大,所以一般为了减少功耗在最后一条关闭IAP
}


/************************************************************************************************************
*    Main function
************************************************************************************************************/
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         ,0000 0111,1/256分频
                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;
                }
}
这个超时复位定时器的规格书上面说的不需要WDTR和WIDPD,这个用这个WDTR是做上面用的???
沙发
598330983| | 2018-4-14 17:04 | 只看该作者
你知道这俩干啥的吗?

使用特权

评论回复
板凳
598330983| | 2018-4-14 17:04 | 只看该作者
WDTR
0 = WDT 禁止。
1 = WDT 使能。 WDT 计数器开始运行。

使用特权

评论回复
地板
598330983| | 2018-4-14 17:05 | 只看该作者
WIDPD WDT 工作在空闲或掉电模式
该位仅当控制位WDTEN[3:0] (CONFIG4[7:4])全为1时有效。它决定WDT作为通用
定时器在空闲或掉电模式下是否保持工作。
0 = WDT 在空闲或掉电模式下停止工作
1 = WDT 在空闲或掉电模式下保持工作.

使用特权

评论回复
5
598330983| | 2018-4-14 17:06 | 只看该作者
看最新手册
http://www.nuvoton.com/resource-files/DS_N76E003_SC_Rev1.05.pdf

使用特权

评论回复
6
huangcunxiake| | 2018-4-15 08:51 | 只看该作者
楼上讲解的好,楼主是没有看明白这个模块的用法。

使用特权

评论回复
7
gejigeji521| | 2018-4-15 10:33 | 只看该作者
对相关设置寄存器了解不够啊。楼上正解。

使用特权

评论回复
8
幸福小强| | 2018-4-15 22:38 | 只看该作者
既然可以正常运行,那就是没错。

使用特权

评论回复
9
小灵通2018| | 2018-4-16 15:53 | 只看该作者
看门狗还要在配置字里设置。

使用特权

评论回复
10
捉虫天师| | 2018-4-16 19:20 | 只看该作者
看手册,不好找就搜索这个寄存器。

使用特权

评论回复
11
yiy| | 2018-4-16 21:11 | 只看该作者
哪个上面说的不需要啊。

使用特权

评论回复
12
hk386|  楼主 | 2018-4-17 10:17 | 只看该作者
598330983 发表于 2018-4-14 17:04
你知道这俩干啥的吗?

WDTR开始计数,WIDPD,控制工作在空闲或者掉电模式(该位只是在通用定时器使用)

使用特权

评论回复
13
hk386|  楼主 | 2018-4-17 10:17 | 只看该作者
598330983 发表于 2018-4-14 17:05
WIDPD WDT 工作在空闲或掉电模式
该位仅当控制位WDTEN[3:0] (CONFIG4[7:4])全为1时有效。它决定WDT作为通用 ...

我这个例子里是超时复位定时器,所以,你懂的

使用特权

评论回复
14
hk386|  楼主 | 2018-4-17 10:19 | 只看该作者
huangcunxiake 发表于 2018-4-15 08:51
楼上讲解的好,楼主是没有看明白这个模块的用法。

这个是看门狗,我不是不明白,只是我看规格书里说:注意:当WDT初始化为超时复位定时器是,WDTR和WIDPD没有作用,规格书11.1(第114页)

使用特权

评论回复
15
hk386|  楼主 | 2018-4-17 10:20 | 只看该作者
gejigeji521 发表于 2018-4-15 10:33
对相关设置寄存器了解不够啊。楼上正解。

这个是看门狗,我不是不明白,只是我看规格书里说:注意:当WDT初始化为超时复位定时器是,WDTR和WIDPD没有作用,规格书11.1(第114页)

使用特权

评论回复
16
hk386|  楼主 | 2018-4-17 10:20 | 只看该作者
幸福小强 发表于 2018-4-15 22:38
既然可以正常运行,那就是没错。

我不是说不能正常运行,我只是有点理解问题。我看规格书里说:注意:当WDT初始化为超时复位定时器是,WDTR和WIDPD没有作用,规格书11.1(第114页)

使用特权

评论回复
17
hk386|  楼主 | 2018-4-17 10:21 | 只看该作者
yiy 发表于 2018-4-16 21:11
哪个上面说的不需要啊。

我看规格书里说:注意:当WDT初始化为超时复位定时器是,WDTR和WIDPD没有作用,规格书11.1(第114页)

使用特权

评论回复
18
hk386|  楼主 | 2018-4-17 10:38 | 只看该作者
598330983 发表于 2018-4-14 17:06
看最新手册
http://www.nuvoton.com/resource-files/DS_N76E003_SC_Rev1.05.pdf

请开你发的规格书11.1(注意当WDT初始化为超时复位定时器时,WDTR和WIDPD没有作用)

使用特权

评论回复
19
598330983| | 2018-4-19 13:06 | 只看该作者
那就是这两条可有可无了。

使用特权

评论回复
20
幸福小强| | 2018-4-22 21:49 | 只看该作者
如果没用,那也没错,留着就是多余啊,你删除试试看没,删除了还能正常运行?

使用特权

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

本版积分规则

22

主题

608

帖子

0

粉丝