【发布时间】:2015-05-27 21:05:48
【问题描述】:
我正在 AVR 上学习 C 中的位逻辑,但遇到了问题。
我想比较 int8_t 变量中的“i”位(从右边开始),如果它是 1,则执行下一条指令,但它不起作用。这是我写的:
if (variable & (1<<i)==(1<<i)) instruction;
以下列数据为例:
uint8_t dot=0101;
PORTC=1;
for (int i=0; i<4; i++)
{
PORTB = fourDigit[i];
if (dot & (1<<i)==(1<<i)) PORTB--;
PORTC<<=1;
}
点(因为它连接到 PB0)应该在第一个和第三个数字上亮起,但目前它在每个数字上都亮起。有什么问题?
感谢您的宝贵时间。
【问题讨论】:
标签: c bit avr led operations