por lo que estoy trabajando en aprender algo de programación AVR con el ATmega328p. Estoy intentando configurar una interrupción de cambio de pin y este es el código que estoy ejecutando. Sin embargo, la interrupción nunca parece activarse. ¿Hay algo que estoy haciendo mal?
¿Hay alguna forma de probar esto fuera del uso de una pizarra, como en la simulación? Estoy usando Atmel Studio.
¡Gracias!
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
#include <avr/interrupt.h>
#define ON_B0 PORTB |= (1 << PORTB0)
#define OFF_B0 PORTB &= ~(1 << PORTB0)
#define TOGGLE_B0 PINB |= (1 << PINB0)
ISR(PCINT1_vect)
{
// Check if pin B1 is low)
if ( !( PINB & (1 << PINB1) ) )
{
ON_B0;
}
else
{
OFF_B0;
}
}
int main(void)
{
DDRB |= ( 1 << DDB0 );
DDRB &= ~( 1 << DDB1 );
PCMSK0 |= ( 1 << PCINT1);
PCICR |= ( 1 << PCIE0);
sei();
while (1)
{
PORTB |= ( 1 << PORTB1);
}
}