以下是我写的IIC总线的写字节子程序,但是编绎错误,显示如下
!E D:\AVR文件\PCF8591\8591.c(65): unrecognized statement !E D:\AVR文件\PCF8591\8591.c(66): syntax error; found `(' expecting `;'
#define uchar unsigned char
#define sda PORTB|=BIT(4); #define scl PORTB|=BIT(3); #define clr_sda PORTB&=~BIT(4); #define clr_scl PORTB&=~BIT(3);
void write_byte(uchar temp) { uchar i; for(i=0;i<8;i++) { if(temp&0x80)
sda; else clr_sda; scl; delay(5); temp<<=1; clr_scl; delay(5); }
}
当我把sda与clr_sda分别用定义的
PORTB|=BIT(4); PORTB&=~BIT(4); 代替时,错误就没有了。我想问的是,难道定义的sda,clr_sda不对吗?
我是参考的别人的程序才这样定义的。
[ 本帖最后由 hz_university 于 2011-7-7 17:45 编辑 ]
|