#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控制。
05-11 13:31