Estuve ojeando la documentación del ATmega168 y la gestión de rutinas de interrupcion(ISR), la duda que tengo es si estas funciones (que vienen en las librerias de avr) se pueden utilizar desde el entorno de arduino o si por el contrario tendria que programarlo en c compilarlo y cargarlo en el microcontrolador.
Hice un pequeño programa de prueba en en el que creaba una rutina de interrupciòn para el vector USART_RX_vect para que cada vez que se completara la recepción del dato encendiera un led , pero el led no se enciende. (Busco el codigo y subo el post de nuevo).
#include <avr/interrupt.h>
boolean status = HIGH;
int a = 0;
ISR(UART_RX_vect) {
Serial.flush();
status = !status;
a++;
}
void setup() {
Serial.begin(9600);
interrupts();
pinMode(13,OUTPUT);
}
Segun el compilador del IDE de arduino ya hay una interrupción asociada en el header wiring_serial.c , sin embargo no he encontrado ninguna interrupción asociada :S