winavr 下 _BV() 是个什么函数?
winavr 下 _BV() 是个什么函数?它放在什么头函数里面的,我怎么找不到的啊? 没记错的话,应该是位操作吧 置位 #define _BV(A) (1<<(A)) _BV(PA1) : 置位 PA1
~_BV(PA1): 清PA1 3楼正确,4楼错误。 _BV()是把1左移N位的函数。
_BV(7)相当于(1<<7)
本身和置位还是清零没有关系。不过这个函数,实际上却真的大多数应用于位的置位或清零。
比如:
PORTA|=_BV(PA7)
PORTB&=~_BV(PB6)
PORTC^=_BV(PC5)
分别相当于:
PORTA = PORTA | (1<<PA7)
PORTB = PORTB & (~(1<<PB6))
PORTC = PORTC ^ (1<<PC5) 呵呵,谢谢各位了 了解了!
mark下 7楼是正解呀。 {:smile:}{:sad:} —BV我一直认为是宏定义
页:
[1]