Tengo el siguiente código que se supone que enciende un led (Puerto D, pin 5) cada vez que se activa un sensor de distancia digital. Verificó dos veces el pinout y el sensor está funcionando.
¿Hay algún problema en el fragmento?
#include <avr/io.h>
#define F_CPU 1000000
#include <util/delay.h>
void init()
{
DDRD |= _BV(PIN5) | _BV(PIN6); //enable the pins
// PORTD |= _BV(PD3); //playing here
}
int main(void)
{
init();
while(1){
if ((PIND & _BV(PD3)) == 0) {
_delay_ms(100);
if ((PIND & _BV(PD3)) == 0) {
PORTD |= _BV(PIN5);
} else {
PORTD &= ~_BV(PIN5);
}
}
}
}