打印

ICCAVR 中关于_LINE_的使用问题 树贴求教

[复制链接]
1479|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
复仇之矛|  楼主 | 2016-7-26 15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在学一个调度器,使用到_LINE_这个东西,网上查找到这个是C语言内置宏定义,切我在KEIL中编译没有问题,但是在ICCAVR中使用ATMEGA16实现这个调度器是出现如下问题:
!E C:\iccv7avr\examples.avr\protothread\led.c(17): undeclared identifier `_LINE_'
!E C:\iccv7avr\examples.avr\protothread\led.c(17): case label must be a constant integer expression
!W C:\iccv7avr\examples.avr\protothread\led.c(18):[warning] reference to `volatile unsigned char' elided
!W C:\iccv7avr\examples.avr\protothread\led.c(18):[warning] expression with no effect elided
!W C:\iccv7avr\examples.avr\protothread\led.c(24):[warning] missing return value
#define BEGIN       static unsigned char _lc=0; switch(_lc){case 0: 
#define END         ;}; _lc=0;
#define WaitX(tim)  _lc=_LINE_+((_LINE_%256)==0);return tim;case _LINE_+((_LINE_%256)==0):


相关帖子

沙发
airwill| | 2016-7-27 09:23 | 只看该作者
undeclared identifier `_LINE_'

说明这个编译器并不支持这个宏, 或者写法有问题, 比如可能是这样定义的 '__LINE__'(两个下划线)
iccavr 是个功能比较弱的编译器, 不支持这个也很有可能

使用特权

评论回复
板凳
复仇之矛|  楼主 | 2016-7-27 10:07 | 只看该作者
airwill 发表于 2016-7-27 09:23
undeclared identifier `_LINE_'

说明这个编译器并不支持这个宏, 或者写法有问题, 比如可能是这样定义的 ' ...

如果不能这样定义,那就不能很好的利用编译过的行号进行调度。版主有没有比较好用的AVR编译器推荐呢?

使用特权

评论回复
地板
airwill| | 2016-7-27 10:44 | 只看该作者
GCCAVR, 我一直用这个编译器, 功能很强劲, 编译效率也很高.
不过跟 ICCAVR 的差别也蛮大, 初学者上手不那么容易

使用特权

评论回复
5
复仇之矛|  楼主 | 2016-7-27 11:57 | 只看该作者
airwill 发表于 2016-7-27 10:44
GCCAVR, 我一直用这个编译器, 功能很强劲, 编译效率也很高.
不过跟 ICCAVR 的差别也蛮大, 初学者上手不那么 ...

哦哦,以前用KEIL的,用这个ICCAVR也不是太习惯。新手,学那个都行。谢谢版主哈

使用特权

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

本版积分规则

23

主题

185

帖子

3

粉丝