打印

请教一个winavr的问题

[复制链接]
925|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whg0109|  楼主 | 2013-12-12 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一段读取DS1302的代码 ,为了移植方便,因此在头文件中字义了一下IO口读取判断
代码形式是这样的
#define DS1302_IO_READ_H PINB & (1<<PB1);
…………

在读取数据时 需要判断IO口电平值,因此用了如下语句
if (DS1302_IO_READ_H )
        value|=0x80;

结果报错,信息如下:
Error        1        expected ')' before ';' token        E:\AVRtest\test1302\test1302\DS1302.c        88        6        test1302
而 如果将if语句写成 if(PINB & (1<<PB1)) 则完全没有问题,这是为什么?请高人指点,谢谢

相关帖子

沙发
whg0109|  楼主 | 2013-12-12 09:47 | 只看该作者
我明白了 原来是宏定义语句中不小心打了个分号的缘故

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝