数组调用问题求助(已经解决)
本帖最后由 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老师或坛友帮助一下,指点迷津。
这个问题我也不清楚。感觉这类程序bug的问题还是要靠自己,别人没有在那个现场很难帮你找到bug。 谢谢老师回复。 芯片问题。原来用AT89S52单片机就是调不出来。更换STC89C52RC芯片,程序不用改就好了。
看来AT89S52芯片在变量的使用上还是有点限制。
页:
[1]