完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//***********************************************************************************************************
// File Function: N76E003 Watch Dog reste functiondemo code //*********************************************************************************************************** #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; IAPFD = 0x0F; IAPCN = 0xE1; set_CFUEN; set_IAPGO; //trigger IAP while((CHPCON&SET_BIT6)==SET_BIT6); //check IAPFF (CHPCON.6) clr_CFUEN; clr_IAPEN; } /************************************************************************************************************ * 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 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; } } 当我想烧之前的代码(没有加看门狗的代码) 结果他一直进入复位 在论坛上说是对配置字进行了修改 但是在keil里也没找到可以如何修改看门狗使能的相关配置 |
|
相关推荐
1个回答
|
|
ude "Function_define.h"
void main (void) { clr_WDCON_WDTF; //清除看门狗复位标志 ENABLE_GLOBAL_INTERRUPT; //打开总中断 /* 看门狗初始化 */ MODIFY_HIRC(HIRC_24); //设置内部高速RC时钟频率为24MHz MODIFY_HCLK(HIRC,1); //设置系统时钟为内部高速RC时钟,时钟分频为1 MODIFY_HIRC(HIRC_12); //设置看门狗时钟频率为12MHz MODIFY_WDCON(WDCON_PRESET_Msk|WDCON_CLRDA_Msk|0x05); //设置看门狗预设值为0x05,清除看门狗时不清除芯片数据 ENABLE_WDT_INTERRUPT; //使能看门狗中断 set_WDCON_WDTR; //启动看门狗 while (1) { /* 编写主程序代码 */ } } void WDT_ISR(void) interrupt 10 { clr_WDCON_WDTF; //清除看门狗复位标志 set_WDCON_WDTR; //重新启动看门狗 /* 编写看门狗中断代码,保证每次看门狗中断时上面的主程序代码执行时间不会超过看门狗预设时间 */ } |
|
|
|
只有小组成员才能发言,加入小组>>
725 浏览 0 评论
1125 浏览 1 评论
2506 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2687 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
665浏览 9评论
680浏览 7评论
684浏览 5评论
imx6dl芯片与imx6q芯片互换启动无反应请问是什么问题呢
287浏览 5评论
219浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 06:59 , Processed in 0.870608 second(s), Total 46, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号