void main()
{
unsigned char dat = 0;
dat |= T8<<0;
dat |= T7<<1;
dat |= T6<<2;
dat |= T5<<3;
dat |= T4<<4;
dat |= T3<<5;
dat |= T2<<6;
dat |= T1<<7;
}
编译的时候报错,显示‘<<’:bad operand type.
不知道为什么。
如果这个方案不可行,有没有别的办法,谢谢! 作者: 188610329 时间: 2021-11-16 22:18
T8 是一个位, 你让 位去移位,往那里移?
其实,不该这么写,但是考虑到你 T1~T8 的定位,可能是虚构的,还是这么写吧。
unsigned char Combi_Data();
{
unsigned char dat;
if(T1) dat |=1;
dat <<=1;
if(T2) dat |=1;
dat <<=1;
if(T3) dat |=1;
dat <<=1;
if(T4) dat |=1;
dat <<=1;
if(T5) dat |=1;
dat <<=1;
if(T6) dat |=1;
dat <<=1;
if(T7) dat |=1;
dat <<=1;
if(T8) dat |=1;
return dat;
}作者: wulin 时间: 2021-11-17 06:36
实际电路设计中尽可能避免这种无序、交叉使用端口,会给编程带来麻烦,稍不仔细就会出错