A T0ni0, decirle que probe con ponerle un pequeño delay (100 ms), y parece que va. Pero al complicarle el codigo, por ejemplo para detectar la tecla del teclado matricial empieza a hacer el payaso. En cuanto a limpiar y desactivar las interrupciones cuando entra en una, ¿no lo hacia ya el compilador?
A adrian2a1, pedirle que me explique el codigo que posteo (soi novato) y por mas que lo miro no lo acabo de entender del porque.
Lo que siempre ocurre es entrar al menos la primera vez en la interrupcion sin que haya ocurrido el cambio de estado en r4:7. Me da la sensacion que el compilador no va lo fino que deberia ...

Gracias a los 2 y a todos los que me estais ayudando, aver si puedo controlar esto. Si alguien ha pasado por la misma experiencia que yo, por favor que me postee posibles soluciones
![Angelito Angelito]()