interrupcion puerto serie arduino

Hola a todos e estado trabajando con alduino pero me e encontrado con un problema, al momento de comunicar por puerto serie, todo va bien pero cuando el arduino esta en una subrutina del programa y yo le mando un dato por el puerto serie, digamos para salir de la subrutina, no atiende el puerto seria hasta ya salir de la subrutina, lo cual me interesaba que la subrutina saliera antes, en ocasiones se tarda algunos segundo esa subrutina y me tengo que esperar hasta que termine para que pueda leer lo que esta en el buffer de entrada,

la función que estoy usando para leer el puerto serie es

serialEvent()

habrá una forma para poner una interrupción por puerto serie para que deje lo que esta realizando y atienda primeramente el puerto, gracias

tengo exactamente el mismo problema pero me interesa generar una interrupción con el puerto serial. agradezco cualquier colaboración

En ambos casos el error es que en sus rutinas usan delay(XXX mseg) no usen delay si quieren que su programa atienda otras cosas.
delay es facil de usar para es como un STOP en el sketch, el micro se detiene a hacer nada (NOP) y uds pierden cambios de los sensores, pierden caracteres del puerto serie, etc, etc. y luego no hay soluciones máginas.

Deben usar millis().
Vean el ejemplo blink sin delay del IDE y ahi su solucion.

Saludos
Cabe recordar que serialevent() no es una interrupcion es una subrutina que se ejecuta luego de loop

Bueno comencemos dandonos cuenta que han recomenzado un viejo post.
Esperemos que quien lo hizo incluya su código.