本帖最后由 pic_flash 于 2015-1-3 10:01 编辑
在AMO论坛, PIC 的使用者算是很少, 然而, 使用CCS C 编译器的同好, 我想更是少。。
开这帖的目的, 是看看有谁正在用, 或有谁曾经用过CCS C 。。然后, 可以讨论大家在使用CCS C 遇到的问题, 如语法, 发现臭虫, 等等的问题。
先介绍我个人, 自从2003, 我就开始用PIC, 第一个PIC 型号是16F84A, 使用的是DOS 版的 CCS C!
我曾学习过PIC basic, 但是只是很短的时间, 过后就转用CCS C, 一直用到现在, 就没有再换过。。
我也真的不会Hi-tech C, Microchip 的 XC 编译器 也没用过。。 ASM 也不会。。。
CCS C, 我想比较少人用的原因, 我个人认为是以下的原因:
1. 他不是标准的ANSI C, 其他的ANSI C 源码, 不能简单快速的转去CCS C
2. 他不支持指针 ,pointer to constant。 Pointer to RAM 是可以的
3. 臭虫多。。几乎每个版本都有臭虫! 但是臭虫也未必会影响你。。
那么, CCS C有好处吗?
1. 他简单, 容易使用, 新手很容易就上手。
2. 含有丰富的内建功能, 函数等等
3. 含有很多范例程序
4. 因为他不是ANSI C, 也不支持Pointer to constant 的关系, 他不考虑太多的相容性, 所以, 他的编译结果是很优越的,产生的hex 是比较小。
不要小看CCS C, 很多老外都是使用CCS C, 而且都是高手中的高手。。。
我最喜欢的就是逛 CCS 论坛, 里面高手如云,偶像如PCM Programmer, Ttelmah前辈等等,
General CCS C discussion
http://www.ccsinfo.com/forum/viewforum.php?f=1
Code Library (源码资源很丰富)
http://www.ccsinfo.com/forum/viewforum.php?f=2
在CCS C 论坛, 不要随意开帖,先用搜索的功能, 如果没有答案, 才开帖询问。
希望CCS C 同好, 可以一起来交流, 谈谈你们的使用经验, 或分享心得。。
我要提醒你的是, 他不是ANSI C, 你如果要把其他的C 源码转去CCS C, 你可能要折腾一番的。。
但是, 你一旦上手, 你就不想换了。。。
是的, Bug 很多。。。只是看你会不会碰上。。
Bug 有时是影响特定的芯片而已。。
我曾经遇到的Bug 是 , EEProm 不能写入。。 (当然后来的版本修正了)
还有一个是 4.xxx 版本时 , 在16F1827 的ADC ,
set_adc_channel(0) //这个内建的功能不正常,
发现后, 我就编写自己的代码, 就解决了。。
当然后来的版本就修正了。。
我的经验是, 以后当你遇到“不按牌理出牌”的结果, 除了检查你的硬体的合理设计外,你就要查看 .lst, 看看ASM代码有没有不合理的地方, 也去CCS 论坛搜索下, 如果有人碰到同样的问题, 你就知道是臭虫了。。
另一个方法是, 你使用其他的版本编译看看。。。
我曾经很长的一段时间, 是使用4.xxx 版本的, 用着高兴, 我其实都不太想升级。。
也要养成一个习惯, 要在你的程序注明, 这个程序是用什么版本的CCS C 编译的, 当有问题时, 能够追溯回。。
其实, 我个人很喜欢的一个CCS C 版本是V3.249, 这个版本是公认最稳定的版本。。能支持到16F628A, 但是新的芯片如 16F18xx, 16F19xx, 12F1xxx 的就不支持了。
版本5.xxx, 其实也是最近才使用的。。
CCS PCWH 3.249
链接:
http://pan.baidu.com/s/1bnAiZ6Z
密码:67g9
喜欢的就收藏吧。。
一周热门 更多>