51单片机,keilc51,如何使用data变量超过128怎么办?谢谢
2个回答
展开全部
将堆栈指针SP指向128之后。如果你定义了数组。将数组定义为Idata。很难想象单个变量使用,你能用尽128个data类内存单元。如果真的用尽了,那只有将访问频率低的内存单元放到idata类去。总之,不要走极端,变量也有轻重缓急之分,不能一味追求性能将所有变量都定为data类。
追问
我用idata定义那些大的数据类型后,程序是c写的,是可以构建成功的,但是程序运行错误,未输入就端口信号乱波动,板子芯片木有外置ram,单单是stc89c52的裸片。
我就是想问问idata怎么使用,或者推荐些书和资料也可以,谢谢
追答
如果是C写的程序,不用关心变量的使用问题,不管是什么内存类型的。对变量的内存类型的定义,只会影响执行速度,通常不会导致程序执行错误。所以程序运行错误应该还是你的程序有问题。
当然因为51的内存有限,你使用idata内存应该留有余地,因为51的堆栈也在idata区里,你多少要留出堆栈空间,否则程序运行可能会崩溃。建议堆栈至少留8个字节以上。
留心一下附件的第二章第2节。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询