打印
[AVR单片机]

令人疑惑

[复制链接]
2040|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电脑圆圆|  楼主 | 2009-11-4 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前用keilc惯了,一转用IAR发现不少套路行不通了,网上查询未果请大家指点:
在中断中调用变量,变量定义为全局如:
char IntSource=0;
#pragma vector=INT0_vect
__interrupt void ExtInt0()
{
   IntSource =……;
   ……;
}
则编译时错误为:
Error[Pe147]: declaration is incompatible with "char __tiny Rc500Int" (declared at line 90)
Error[Pe137]: expression must be a modifiable lvalue

若将变量放进中断函数里:
#pragma vector=INT0_vect
__interrupt void ExtInt0()
{
   char IntSource=0;
   IntSourceIntSource =……;
   ……;
}
则编译时错误为:
Error[e18]: Range error,  
Number out of range. Valid range is -128 (-0x80) to 255 (0xFF).
File: C:\Documents and Settings\lanbao\桌面\avr\avr.c, Line: 20

相关帖子

沙发
BitFu| | 2009-11-4 17:35 | 只看该作者
是你的其它代码问题吧

使用特权

评论回复
板凳
电脑圆圆|  楼主 | 2009-11-4 21:46 | 只看该作者
晕啊,对编译器不熟悉就是才吃亏,把选项里有个memery类型改small,默认是tiny

使用特权

评论回复
地板
discovery0x01| | 2009-11-6 01:08 | 只看该作者
:D 我刚开始的时候也有遇到。习惯就好了。IAR非常的出色。

使用特权

评论回复
5
电脑圆圆|  楼主 | 2009-11-6 18:24 | 只看该作者
的确出色,功能很细化

使用特权

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

本版积分规则

12

主题

251

帖子

0

粉丝