| ... | ... | @@ -3,6 +3,8 @@ Interrupts are asynchronous **hardware signals** that can be handled in software |
|
|
|
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 **Interrupt Request Handler** (_IRQHandler_): a software function which is called every time the interrupt takes place.
|
|
|
|
|
|
|
|
An interesting thing to know is that in miosix interrupts can't be interrupted. This means that if the program is executing an interrupt, the **ISR** (_Interrupt Service Routine_) is a **critical section**, so all the code will be executed sequentially. If other interrupts happen while an **ISR** is being executed, these interrupts will stay in the pending state and will be applied a priority policy.
|
|
|
|
|
|
|
|
This page gives some quick information on how to use Interrupts with MIOSIX in STM32 boards.
|
|
|
|
|
|
|
|
## Step 1: Enable IRQ Generation
|
| ... | ... | |