Interrupts are asynchronous **hardware signals** that can be handled in software. They are handled by the CPU immediately, therefore **interrupting** whatever was being executed before the interrupt.
Interrupts are asynchronous **hardware signals** that can be handled in software. They are handled by the microcontroller immediately, therefore **interrupting** whatever was being executed before the interrupt.
Interrupts can be generated by different events, such as exceptions, timer counter overflows, incoming messages on a bus, GPIO level change etc... All these events generate an Interrupt REQuest (IRQ), which is managed in software by the corresponding IRQHandler().
Interrupts can be generated by different events, such as exceptions, timer counter overflows, incoming messages on a bus, GPIO level change etc... All these events generate an Interrupt REQuest (IRQ), which is managed in software by the corresponding IRQHandler().