Cuando se diseña un programa, lo habitual es pensarlo como un flujo de instrucciones que se ejecutan una detrás de otra siguiendo una ejecución secuencial. En el contexto de los microprocesadores y los microcontroladores, si estuviéramos limitados sólo a este modelo secuencial, el desarrollo de aplicaciones sería más complicado. Os pongo un ejemplo muy simplificado: si el sistema que estamos diseñando tiene que atender una serie de actuadores (por ejemplo un botón), tendremos que andar sondeándolos periódicamente para ver si se pulsó el botón. ¿Pero qué ocurre si se pulsa un botón mientras el programa anda ocupado en otra tarea y justo en ese momento no se está sondeando la entrada del actuador? En este caso el sistema no será capaz de detectar la pulsación. La solución en este caso es el uso de interrupciones. Cuándo se dispara una interrupción, el procesador detiene la ejecución del programa que está corriendo, almacena el estado de los registros (incluido el contador de programa)...
Is this real or is it a game? What's the difference?