打印
[PIC®/AVR®/dsPIC®产品]

X IDE 5.20 + XC8 2.10 下编译错误

[复制链接]
2196|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 majiahao 于 2020-2-1 16:23 编辑

用PIC16F18855,编写一段程序,从PIC16F1936移植过来,以前老版本X IDE+XC8和IDE8.92+PICC是没问题的,但X IDE 5.20+XC8 2.10提示错误,XC8是正版买过授权的,请各位帮忙看看这段寄存器定义问题出在哪里?还有编辑界面上面的换行符锤子标记以及空格圆点标记如何去掉,刚开始用IDE+XC8,不习惯,谢谢

jcq1.JPG (327.2 KB )

jcq1.JPG

err.JPG (230.81 KB )

err.JPG

使用特权

评论回复
沙发
majiahao|  楼主 | 2020-2-2 23:34 | 只看该作者
查了下,提示编译环境会出现无法解析标识符

请教下,如果要定义一个寄存器做标志位寄存器,里面8BIT作为8个标志位,用0x70-0x7F这15个寄存器效率最好,编译代码最少,减少了各BANK的跳转,但是就像我上面贴的图,如何写这段代码?  另外感觉X IDE 5.20 和X IDE 5.30 都有问题,5.30 下插件要下载才能安装,中文界面汉化不全,感觉就是个半成品, 5.20 是否也有和我一样出现 编译环境会出现无法解析标识符 问题  有个程序以前用老的IDE8.92+picc 和X IDE 5.01 都没有问题的

使用特权

评论回复
板凳
cindysu| | 2020-2-3 15:11 | 只看该作者
项目属性--通用General,里的Encoding选GB18030,看是否能把空格的.和换行去掉

使用特权

评论回复
地板
GYGD| | 2020-2-4 13:44 | 只看该作者
majiahao 发表于 2020-2-2 23:34
查了下,提示编译环境会出现无法解析标识符

请教下,如果要定义一个寄存器做标志位寄存器,里面8BIT作为8 ...

这个是标识符问题,还有就是编译器不识别bit定义的,一般选择尾缀为5的IDE

使用特权

评论回复
5
lcczg| | 2020-2-4 19:55 | 只看该作者
变通的方法可以用联合体union
union {
  unsigned char byte;
  // a structure with 8 single bit bit-field objects, overlapping the union member "byte"
  struct {
    unsigned b0:1;
    unsigned b1:1;
    unsigned b2:1;
    unsigned b3:1;
    unsigned b4:1;
    unsigned b5:1;
    unsigned b6:1;
    unsigned b7:1;
  };
} byte_u __at(0x72);

使用特权

评论回复
6
majiahao|  楼主 | 2020-2-6 11:00 | 只看该作者
问题已经解决,关键还是XC8 2.10的设置问题,因为程序以前用老的X IDE和XC8都是没问题的,我又把microchip官网上的一些已经编译过的X IDE+XC8例程,AN2912,AN2912_S,EXP8SPIClick.X,EXP8I2CClick.X,C18H02_FRM2_LabMaterial拿来编译,无一例外都无法通过,又琢磨了一些时间,发现在C90和C99的C语言标准上,以前的PICC和XC8都是默认支持C90的,我们的编写习惯就以C90为准,但如果以C99为标准,就有不少被C90支持而C99不支持的标识符无法解析,比如bit,要在C99下被解析,就要采用5楼lcczg联合体union加结构体struct方法变通实现,我编译测试过。
    要和以前程序兼容,就要把XC8 2.10的默认C语言标准由C99改为C90,或完全以C99标准编写。在此也给其他人提个醒不要再犯我的错。
另外那个讨嫌的换行符和空格圆点等,只要在X IDE的视图菜单里把显示不可打印的字符(N)勾选去掉就可以了,因为要用PIC16F18855,所以从IDE8.92+PICC转到X IDE+XC8,还是不太熟悉

XC8_1.JPG (103.51 KB )

XC8_1.JPG

xc8_2.JPG (131.99 KB )

xc8_2.JPG

使用特权

评论回复
7
箫声欲碎| | 2020-12-10 09:20 | 只看该作者
太感谢了!! 最好出个博文吧。

使用特权

评论回复
8
zhuotuzi| | 2020-12-14 23:15 | 只看该作者
C90很老了吧

使用特权

评论回复
9
pzsh| | 2021-2-2 13:41 | 只看该作者
谢谢分享,mark下,避免以后踩坑

使用特权

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

本版积分规则

1

主题

22

帖子

0

粉丝