打印

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

[复制链接]
1855|12
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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 | 只看该作者
程序运行第一句时先把看门狗停止了。怀疑楼主没关。

使用特权

评论回复
5
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();                               // 赋初始值
}

使用特权

评论回复
6
爱在2012| | 2012-5-24 17:16 | 只看该作者
是不是干扰的问题啊?

使用特权

评论回复
7
Cathy_Fu| | 2012-5-24 18:30 | 只看该作者
要初始化的数据是不是太多了? 调用 __low_level_init () 关闭看门狗试试

使用特权

评论回复
8
4027379|  楼主 | 2012-5-28 13:55 | 只看该作者
就是找不到干扰源

使用特权

评论回复
9
jiang390625| | 2012-5-28 14:05 | 只看该作者
分析:
1、如果在MCU复位的时候,外部电路也会跟着重新上电或复位,那就会导致电源电流消耗的短时增加,如果电源系统供电能不足,其输出电压就会短时下降。如果复位功能(MCU内部复位电路、振荡子系统及外部复位电路)受到电源电压降低的影响而不能正确行使其功能,就会导致“复位不正常”。
2、如果电源系统中没有泻放电路,或泻放电路工作不正常,则在重新上电的时候,MCU以及复位电路的工作电压不是从“0”开始,其电平上升幅度(幅值和上升时间)不够触发复位功能,从而导致“复位”不正常。而长时间断电后,余电基本泻放完毕,就不会出现上述不正常的情况出现。

使用特权

评论回复
10
ji7411| | 2012-5-28 14:07 | 只看该作者
用复位芯片IMP809R,没有出现上述不正常的情况

使用特权

评论回复
11
tianli1980| | 2012-5-31 23:25 | 只看该作者
可能还有环境问题,比如静电干扰等。

使用特权

评论回复
12
TI_MCU| | 2012-6-1 09:42 | 只看该作者
楼主有没有用到比较大的数组?如果有的话,在数组初始化之前完成关门狗的停止工作

使用特权

评论回复
13
zsh-work| | 2012-6-1 10:10 | 只看该作者
看看每个中断的设置是否都正确,我遇到过使能了中断,但找不到相应的中断入口就复位了。

使用特权

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

本版积分规则

12

主题

77

帖子

1

粉丝