打印

求救,单片机启动太慢

[复制链接]
5664|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccsybl|  楼主 | 2011-12-21 08:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ccsybl 于 2011-12-21 08:59 编辑

我用的是C8051F120单片机,选用12M外部晶振,每次从上电到进入正常工作,要等待半分钟之久,进入工作状态后一切正常,程序很简单,道理上不会造成启动慢,请哪位高手指点一下,谢谢!

相关帖子

沙发
ayb_ice| | 2011-12-21 09:00 | 只看该作者
检查程序
再慢也不可能要半分钟的

使用特权

评论回复
板凳
rclong| | 2011-12-21 09:11 | 只看该作者
复位电路焊错电阻了?

使用特权

评论回复
地板
ccsybl|  楼主 | 2011-12-21 09:15 | 只看该作者
水平不够,找不出来啊。就是对端口、计数器、振荡器、中断、DAC、看门狗赋值,其他都没做。

使用特权

评论回复
5
ccsybl|  楼主 | 2011-12-21 09:27 | 只看该作者
刚才用表测量复位脚,1秒钟不到电压就到位了,肯定是程序有问题

使用特权

评论回复
6
ccsybl|  楼主 | 2011-12-21 09:27 | 只看该作者
刚才用表测量复位脚,1秒钟不到电压就到位了,肯定是程序有问题

使用特权

评论回复
7
kama_ya| | 2011-12-21 10:44 | 只看该作者
1# ccsybl 可能时钟配置问题或者看门狗问题,上配置程序

使用特权

评论回复
8
ccsybl|  楼主 | 2011-12-21 12:06 | 只看该作者
主程序入口部分
void main(void)
{
  char SFRPAGE_SAVE = SFRPAGE;

    Reset_Sources_Init();   
  
    Oscillator_Init();

Port_IO_Init();
   
    Interrupts_Init();
   
    DAC1_Init();

    PCA0_Init();

    SFRPAGE = SFRPAGE_SAVE;
   


    while(1);

使用特权

评论回复
9
kama_ya| | 2011-12-21 12:10 | 只看该作者
本帖最后由 kama_ya 于 2011-12-21 12:31 编辑

顺序如下:
1:禁止看门狗
2:Oscillator_Init();
3:Reset_Sources_Init();   
4: 。。。。。。。。。。。。。。。
5.。。。。。。。。。。。。。。。。。

使用特权

评论回复
10
nc965| | 2011-12-21 12:26 | 只看该作者
注意中断的动作,还有复位,都会引起这些问题,要验证也简单,中断计数一下

使用特权

评论回复
11
阿门阿门| | 2011-12-21 12:33 | 只看该作者
:handshake

使用特权

评论回复
12
gx_huang| | 2011-12-21 12:56 | 只看该作者
这个问题,在其它MCU里遇到。
有些MCU,上电是内部的低速RC振荡,要切换到高速振荡需要延时,这个延时程序要注意重新计算,要基于低速时钟。

使用特权

评论回复
13
wangjun403| | 2011-12-21 12:59 | 只看该作者
c8051f里面有个晶振初始化的东西,单步看看那里怎么走出去的

使用特权

评论回复
14
xuyaqi| | 2011-12-21 13:17 | 只看该作者
用断点仿真办法确定哪一步时间长

使用特权

评论回复
15
SmartEnergy| | 2011-12-21 14:48 | 只看该作者
时间固定不固定,很重要。

使用特权

评论回复
16
lcz102| | 2011-12-21 16:36 | 只看该作者
接上万用表 需要 一秒钟 ,那应该是电路上没有连接好。  万用表接上后,电压档的电阻成了接地电阻,还需要 1 秒钟 ,说明 原来的复位 电路没有接地电阻。

使用特权

评论回复
17
tanwanshui| | 2011-12-21 17:42 | 只看该作者
从硬件来讲:查复位电路部分,是否电阻或电容弄错了参数

使用特权

评论回复
18
7120223| | 2011-12-21 21:23 | 只看该作者
要不看看 晶振一上电就起振了么

使用特权

评论回复
19
JLINGON| | 2011-12-21 22:02 | 只看该作者
不可能那么慢~~~lz应该看看是不是其他的问题导致的~~~

使用特权

评论回复
20
救火车| | 2011-12-22 09:14 | 只看该作者
几点建议:
1、老规矩,有问题先从电源查起。检查芯电源电压。有无缺地,缺电源问题。
2、用一个按键代替复位电路。可以检查复位电路问题。
3、用万用表测量晶振脚对地电压,正常应该是电源的一半。尤其要注意,程序从上电到正常运行的电压变化。
4、重建一个软件项目,只是上电后让指示灯闪烁。
其他:换换晶振之类的零件。
先试试这些吧。再不行就找程序匠人问问。

使用特权

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

本版积分规则

14

主题

50

帖子

1

粉丝