之前用PIC16F72,后要用串口。就采用了PIC16F722。后来某些原因,没使用串口,但722买了,还得用。
使用PICCpro9.65编译的程序,正常通过。某天无意将MPLAB选择设备为PIC16F72,重编译了一下,天啊。少了120个WORD(总共才1400WORD)。奇怪了,722与72空间不都一样吗?怎会这么大差别。对比汇编发现,编译722将很多变量整到BANK1了,在很多操作上都要进行BANK切换。而编译72则编译在BANK0上,就少了120WORD。
郁闷,72与722空间一样,怎么编译差这么多呢?望高人指点。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
今天又试了下PICC9.70,结果一编译一堆错误。怪了9.65没任何问题的,9.70却编译不过。再找,发现9.70对语法要求相当严格。最后再改,但还是提示无法查找到空间。看来9.70还是有些问题待解决,建议还是先用9.65吧。
这里给大家个建议(可能我是菜鸟,之前没注意罢了),在类似这样的语句中,if (x >= (y - 10)) fun(); 使用PICC编译时,最后加上类型限定,改成 if (x >= (unsigned char)(y - 10)) fun(); 这样编译出来可少10来个WORD。注,x,y本身已是unsigned char类型的,之前使用其它C语言时,根本不用强制类型的。
一周热门 更多>