有一段读取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)) 则完全没有问题,这是为什么?请高人指点,谢谢 |