Estoy aprendiendo por mi cuenta a programar AVR C. Veo _BV(RD) y _BV(WR) en el código pero no sé qué significan. No sé lo que quieren decir.
La explicación anterior es incorrecta.
#define _BV(bit) (1 << (bit))
_BV() es una función que desplaza 1 hacia la izquierda N bits.
_BV(7) es equivalente a (1<<7)
No tiene nada que ver con configurar o borrar bits per se. Sin embargo, esta función en realidad se utiliza principalmente para configurar o borrar bits.
Por ejemplo:
PORTA|=_BV(PA7)
PORTB&=~_BV(PB6)
PORTC^=_BV ( PC5)
Equivalentes respectivamente:
PORTA = PORTA | (1< PORTB = PORTB & (~(1< PUERTO = PUERTO ^ (1<