CVAVR问题咨询
.......#define HC164_data PORTA.0
#define HC164_clk PORTA.1
.......
.......
void HC164_send_byte(char byte)
{
char i;
for (i=0;i<=7;i++)
{
HC164_data = byte & 1<< i;//**********对这条语句有疑问
HC164_clk = 1;
HC164_clk = 0;
}
}
.......
马老师:以上程序,是您在《基于 AVR 的单片嵌入式系统原理与实践应用》某章节中的内容。现有一问题想咨询:HC164_data = byte & 1<< i;这条赋值语句,右侧byte & 1<< i是字节类型,而左侧是位类型,相互如何赋值?(即在CVAVR中,赋值规则如何?)在C51中,可以采取强制类型转换的,将字节型(byte)强制转化为位(bit)类型。烦请马老师回复,谢谢,再见。 有人问过,请看以前帖子。马老师也讲的很清楚。 回复【1楼】tangwei039
-----------------------------------------------------------------------
谢谢提醒。 这里隐藏着一个“强制类型转换”,将字节型(byte)强制转化为位(bit)类型:不为另为“1”,为另则是“0”。
这个是C的规则。
页:
[1]