打印

【求助】pic

[复制链接]
1632|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
frlop|  楼主 | 2013-3-25 20:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 frlop 于 2014-3-10 11:57 编辑

本人菜鸟现在大四实习,最近刚上手pic,编译器为picc9.83**版。
在定义多个联合体的时候,原来在keil里编译过的程序没有问题,移植到picc里警告出错。
还有,在全局定义了了bit的tmpGIE变量,然后竟然发现一旦赋值完毕,这自动变成了0(串口发送显示的)。后来在每个用到的地方改成unsigned char的局部变量才好。
还有很多小问题,本来不行让后就乱改,乱试,突然就好了。(完全不知道改了什么要害,真心心虚呀)
沙发
frlop|  楼主 | 2013-3-25 20:46 | 只看该作者
自己顶一下。
知道很多电工们钟爱PIC,也觉得pic和其他单片机确实很不同,但最近被它搞得有点狼狈。
望前辈们多多指点。

使用特权

评论回复
板凳
l4157| | 2013-3-25 21:22 | 只看该作者
只是有些语法不同,9.83比较成熟的...

使用特权

评论回复
地板
yewuyi| | 2013-3-26 09:03 | 只看该作者
1、除了特殊的扩展宏指令外,PICC完全符合ANSI C的标准要求,如果你纠结,说明你的C基本知识掌握的还不好。
2、是不是有预编译,你自己看编译过程就知道了,预编译其实不是一个很标准的词语,在一个多文件C语言源代码中,编译器首先会对单个文件编译,并导出符号表、OBJ文件等等,然后连接器根据上一步编译的结果进行连接,有一些人将第一个过程称为预编译,将第二步称为编译,这其实是错误的,实则上第一步是单文件编译,第二步是多文件目标文件的连接。
当然,如果你只有一个C文件,则连接和编译是一步完成的,根本就不出现连接提示了。
3、不要显摆自己51,430,s12,stm8,说实话,在老工程师眼中看来,这只能表示你虽然可能接触过,但你根本没有彻底弄清它,否则你就不会被PICC给困倒,在各家C编译器中,PICC算是很简洁易用的,你找本张明峰先生的那本PIC入门书中的相关PICC章节一看就明白了。

使用特权

评论回复
5
frlop|  楼主 | 2013-3-26 09:15 | 只看该作者
yewuyi 发表于 2013-3-26 09:03
1、除了特殊的扩展宏指令外,PICC完全符合ANSI C的标准要求,如果你纠结,说明你的C基本知识掌握的还不好。 ...

谢前辈教导,回头继续努力。
说自己接触过430之类的没有显摆的意思,自然知道要弄懂一块mcu需要很长的实践经历。只是在接触他们的时候大多从寄存器开始入手,但这次接触pic真的一直在纠结语法问题。

使用特权

评论回复
6
frlop|  楼主 | 2013-3-26 09:36 | 只看该作者
yewuyi 发表于 2013-3-26 09:03
1、除了特殊的扩展宏指令外,PICC完全符合ANSI C的标准要求,如果你纠结,说明你的C基本知识掌握的还不好。 ...

您对预编译的解释,我更迷糊了。也许我c语言基础太差。预编译这个概念是上课时老师教导的,而且上课讲的程序大多都是小程序也就是单个C文件。记得谭浩强的书应该有预编译的解释,所以觉得预编译和文件数量怎么会有关系。

使用特权

评论回复
7
john_lee| | 2013-3-26 09:50 | 只看该作者
4个步骤:
预编译 -> 编译 -> 汇编 -> 链接

使用特权

评论回复
8
yewuyi| | 2013-3-26 09:56 | 只看该作者
frlop 发表于 2013-3-26 09:36
您对预编译的解释,我更迷糊了。也许我c语言基础太差。预编译这个概念是上课时老师教导的,而且上课讲的 ...

单文件的时候从编译器输出窗口就看不到这个过程了,当然编译器软件内部还是有一个执行过程的。

使用特权

评论回复
9
yewuyi| | 2013-3-26 10:01 | 只看该作者
还有一些将编译器开始编译前的符号替代等操作认为是预编译,这个其实和编译没啥关系,只是做了一些文本扫描,然后做一些符号替代等工作,这个过程一般从C编译器输出窗口也是看不到提示的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Stay foolish,stay hungry.

16

主题

835

帖子

3

粉丝