F149 时不时自动复位,会是什么原因?〈〉

[复制链接]
3022|12
 楼主| 4027379 发表于 2012-5-24 11:29 | 显示全部楼层 |阅读模式
firstblood 发表于 2012-5-24 12:58 | 显示全部楼层
那就详细描述下呗,看是用了单片机内部的看门狗,还是外部用了复位IC的,都得注意的啊
 楼主| 4027379 发表于 2012-5-24 14:46 | 显示全部楼层
复位电路是RC充放电路,10K 0.1UF 验证过没有问题。
内部用到看门狗,但是程序没有跑到那里去。
因为接仿真器,在线调试的时候,没有复位过,程序也没有进室看门狗里。
怀颖是复位电路,因为在线调试的时候仿真器上RST高电平是引到单片机上的,当不接仿真器后,有时就复位了。
TI_MCU 发表于 2012-5-24 16:51 | 显示全部楼层
程序运行第一句时先把看门狗停止了。怀疑楼主没关。
 楼主| 4027379 发表于 2012-5-24 16:58 | 显示全部楼层
程序第一句就跑
void INIT_SYS(void)
{
  INIT_WDT();                                       // 关闭看门狗
  INIT_CLK();                                       // 设置主时钟
  INIT_IO();                                        // 初始化IO口
  INIT_UART();                                      // 初始化UART
  INIT_TIMER();                                     // 初始化TA
  INIT_ADC12();                                     // 初始化ADC12
  Define_Constants();                               // 赋初始值
}
爱在2012 发表于 2012-5-24 17:16 | 显示全部楼层
是不是干扰的问题啊?
Cathy_Fu 发表于 2012-5-24 18:30 | 显示全部楼层
要初始化的数据是不是太多了? 调用 __low_level_init () 关闭看门狗试试
 楼主| 4027379 发表于 2012-5-28 13:55 | 显示全部楼层
就是找不到干扰源
jiang390625 发表于 2012-5-28 14:05 | 显示全部楼层
分析:
1、如果在MCU复位的时候,外部电路也会跟着重新上电或复位,那就会导致电源电流消耗的短时增加,如果电源系统供电能不足,其输出电压就会短时下降。如果复位功能(MCU内部复位电路、振荡子系统及外部复位电路)受到电源电压降低的影响而不能正确行使其功能,就会导致“复位不正常”。
2、如果电源系统中没有泻放电路,或泻放电路工作不正常,则在重新上电的时候,MCU以及复位电路的工作电压不是从“0”开始,其电平上升幅度(幅值和上升时间)不够触发复位功能,从而导致“复位”不正常。而长时间断电后,余电基本泻放完毕,就不会出现上述不正常的情况出现。
ji7411 发表于 2012-5-28 14:07 | 显示全部楼层
用复位芯片IMP809R,没有出现上述不正常的情况
tianli1980 发表于 2012-5-31 23:25 | 显示全部楼层
可能还有环境问题,比如静电干扰等。
TI_MCU 发表于 2012-6-1 09:42 | 显示全部楼层
楼主有没有用到比较大的数组?如果有的话,在数组初始化之前完成关门狗的停止工作
zsh-work 发表于 2012-6-1 10:10 | 显示全部楼层
看看每个中断的设置是否都正确,我遇到过使能了中断,但找不到相应的中断入口就复位了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

77

帖子

1

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