查看: 7827|回复: 5

[其他] 请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

[复制链接]

该用户从未签到

2

主题

13

帖子

0

新手上路

Rank: 1

积分
24
最后登录
1970-1-1
发表于 2011-7-19 16:48:16 | 显示全部楼层 |阅读模式
我用DZ60的芯片编了个遥控器接受端的程序。用51单片机做了遥控器的发射模块,用DZ60做接受模块。使用仿真器进行在线调试,下载程序到DZ60中,全速运行,接受模块可以收到红外信号且其他功能正常,但是当拔掉仿真器,将DZ60复位,却接收不到红外信号,单片机不能实现预期的功能。编程思想是,首先接受模块等待红外信号(一直等待没有看门狗复位),遥控器发射红外信号,使用DZ60的输入捕捉功能进行解码,使用在线调试时,一切正常,去除仿真器去不行了。跪求高手指点。部分程序如下: for(;;)      {PTCD_PTCD6=1; 蜂鸣器      EnableInterrupts;       if(IrOK==1) 接收到信号         { IrOK=0;           judgement();判断接受到的信号的值         }     }    }void interrupt 9  tpm4() 使用输入捕捉解码红外信号。{   uchar t,key;  DisableInterrupts;  newfall=TPM1C4V;  temp=newfall-oldfall;  oldfall=newfall;  if(temp>12000&&temp1|0x80; m++;           }                           if(temp>1000&&temp>1; m++; //取码          }                                       }  if(m==32)    {     m=0;           f=0;          key=Im[2]&Im[3];        if(key==0)         {  keyflag=1;            IrOK=1;            record=Im[2];                              }        else IrOK=0;   //取码完成后判断读码是否正确   }               //准备读下一码        TPM1C4SC_CH4F=0;              }
我知道答案 目前已有4人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-7-19 17:22:13 | 显示全部楼层

    RE:请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

    程序比较乱,EnableInterrupts应该仿真for()外边,另外还可能是你的系统时钟配置错误。
    该会员没有填写今日想说内容.

    该用户从未签到

    65

    主题

    204

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    270
    最后登录
    1970-1-1
    发表于 2011-7-19 18:55:42 | 显示全部楼层

    回复:请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

    由于在线仿真完全正常,可以确定是时钟问题,极有可能是外部晶振没有起振,因为仿真器有个调试频率,在线仿真时用的就是这个频率,拨出就没有这个频率了!

    该用户从未签到

    16

    主题

    199

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    443
    最后登录
    2019-12-24
    发表于 2011-7-19 20:40:30 | 显示全部楼层

    RE:请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

    可能的问题:
    1.外部晶振有没有起振?总线时钟是怎样配的?换内振荡试试。
    2.RESET是怎样驱动的,配置的?

    该用户从未签到

    6

    主题

    171

    帖子

    0

    新手上路

    Rank: 1

    积分
    356
    最后登录
    1970-1-1
    发表于 2011-7-19 21:50:58 | 显示全部楼层

    RE:请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

    通常都是内振引起的,没有校准吧

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    1970-1-1
     楼主| 发表于 2011-7-22 17:29:41 | 显示全部楼层

    回复:请教高手,使用在线调试时程序正常运行,让单片机自己跑的时候却不行

    问题解决了,是MCG时钟的问题,没有调用初始化函数,汗!!
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-26 18:30 , Processed in 0.102131 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表