PIC CCS使用心得

[复制链接]
4571|3
 楼主| colinluan 发表于 2008-9-30 16:15 | 显示全部楼层 |阅读模式
一直在用PIC&nbsp;CCS的编译器,给我的感觉就是:既有一些其它编译器无法比拟的地方。也有一些让人头痛的地方。<br /><br />首先,感觉最大的好处就是内置了丰富的函数库,这一点让我感觉非常爽。可以让人腾出时间来,把更多的精力花在产品的开发上,而不是花在子程序的编写上。比如说delay_ms(),这个延时函数真的很不错,并不会随着晶振的改变而改变时间。还有串口引脚绑定,简直太方便了,只要一句话就行<br /><br />#use&nbsp;rs232(baud=9600,&nbsp;xmit=&quot;PIN&quot;_A2,rcv=PIN_A3)<br /><br />还有集成了USB库等。<br /><br />不过,CCS也有许多不尽人意的地方,比如说常量数组的长度问题,最多只能有0-255个长度的数组。写液晶驱动的时候就很有麻烦,显示一幅128*64的图片必须得放在四个数组里面才行,同时也加大了程序的开销。<br /><br />还有就是常量指针的问题,前一阵移植圈圈的USB固件的时候,发现怎么也无法枚举成功。经过一阵瞎折腾,发现编译竟然不支持常量指针,害得我把存放描述符的结构体全部改成了数组。并且一个一个的往主机传送,才解决了这个问题。同时写液晶驱动时也会存在这个问题,必须得把字模数组定义成全局变量才行。<br /><br />还有一个令人头疼的就是编译器不区分大小写,移植圈圈的程序时,发现怎么也编译不过,最后终于发现原来是大小写的问题。感觉这是个严重的问题,如果长时间在这编译器里写程序,很可能会养成大小写不分的习惯。<br /><br />还有(*((volatile&nbsp;uchar&nbsp;*)PORT_A)),像这样的语句在CCS中会被报错,而在Keil及VC中则可以正常通过。<br /><br />还有一点,感觉CCS&nbsp;的编译器语法不怎么严谨,比如说我定义一个数组:<br /><br />int8&nbsp;a[]={<br /><br />0x01,<br /><br />0x02,<br /><br />0x03,<br /><br />0x04<br /><br />};<br /><br />如果我写成这样:<br /><br />int8&nbsp;a[]={<br /><br />0x01,<br /><br />0x02,<br /><br />0x03<br /><br />0x04<br /><br />};<br /><br />则仍然可以正常通过。<br /><br />虽然CCS有许多不好的地方,但是相对于HI-TECH,我更喜欢CCS.<br />
li3 发表于 2008-10-1 10:38 | 显示全部楼层

好好读帮助,可以用 #case 解决。

Will&nbsp;cause&nbsp;the&nbsp;compiler&nbsp;to&nbsp;be&nbsp;case&nbsp;sensitive<br /><br />此定义使能大小写敏感。
 楼主| colinluan 发表于 2008-10-1 17:09 | 显示全部楼层

谢谢2楼

2楼:&nbsp;好好读帮助,可以用&nbsp;#case&nbsp;解决。&nbsp;<br /><br />Will&nbsp;cause&nbsp;the&nbsp;compiler&nbsp;to&nbsp;be&nbsp;case&nbsp;sensitive<br /><br />此定义使能大小写敏感。&nbsp;<br />&nbsp;<br />-----------------------------------------------------------<br />回复2楼:<br />多谢提醒,可能是我研究的不够深透吧。还得继续努力才行。
dwdsp 发表于 2012-8-7 09:01 | 显示全部楼层
请教:ccs 和c18的差别?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

83

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部