_BV()
#define _BV(bit) (1 << (bit))
_BV()是把1左移N位的函数。
_BV(7)相当于(1<<7)
常用于位的置位或清零
示例解析:
PC7=7;
PORTC|=_BV(PC7);//将PORTC的第7位置1
也就是说要是使用了_BV(PC7)就是把PC7看成一个bit;
而PC7=7,那么1<<7就是把0000 0001各位全部左移7位,就是1000 0000;
为了叫PORTC的第7位置一,就要PORTC的第7位和1或一下,也就是
PORTC=PORTC|1000 0000=PORTC|(1<<(7))
=PORTC|_BV(PC7)=PORTC|=_BV(PC7)
同理,为了将第七位置零:PORTC&=~_BV(PC7)
AVR中DDRC、PORTC含义
AVR单片机的IO是3态门DDRC是C口的方向寄存器,PORTC是C口的数据寄存器,
DDRC为0时,C口为输入,IO的高低从PORTC可以读出
DDRC为1时,c为输出,输出高低有PORTC控制。