独闷闷网

 找回密码
 立即注册
搜索
查看: 3141|回复: 3
打印 上一主题 下一主题
收起左侧

[求助] 数组调用问题求助(已经解决)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-3-25 21:39:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 mykafw 于 2015-4-2 20:11 编辑

我是单片机初学者
我的问题:原来定义在CODE区的一个数组,程序运行时可以正常调用。后来这个数组元素在程序运行时需要更改,这个数组不能存储在CODE区
就去掉CODE关键字,我的程序不能正常运行。
如:
uchar code PhoneCall[]={"ATD1xxxxxxxxxx;"}; //拨打电话数组

  void phone()//拨电话
{
   Print_Str(PhoneCall,15);
   Print_Char('\r');
   ES=1;
   delay_Xms(500);
}   
void main() 主函数
{
while(!SW1);//松手检测
   {
    D1LED=1;//指示灯亮
    delay_Xms(100);
    phone();
    D1LED=0;//指示灯灭
    clear_Buff();
    delay_Xms(500);
  }
}     
这样程序能运行。指示灯亮灭变化,能拨打电话。
当去掉CODE关键字,用其它函数改变数组元素时
(即更换电话号),
主函数还是那样,程序不运行。因程序较长,
不便全贴上来,这样不知是否把问题说清楚了,
求jianghong老师或坛友帮助一下,指点迷津。
   




乐于分享,勇于质疑!
沙发
发表于 2015-3-25 22:10:42 | 只看该作者
这个问题我也不清楚。感觉这类程序bug的问题还是要靠自己,别人没有在那个现场很难帮你找到bug。
乐于分享,勇于质疑!
板凳
 楼主| 发表于 2015-3-26 07:39:22 | 只看该作者
谢谢老师回复。
乐于分享,勇于质疑!
地板
 楼主| 发表于 2015-4-2 20:20:03 | 只看该作者
芯片问题。原来用AT89S52单片机就是调不出来。更换STC89C52RC芯片,程序不用改就好了。
看来AT89S52芯片在变量的使用上还是有点限制。
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-20 09:15 , Processed in 0.155805 second(s), 16 queries .

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