Embedded systemen en firmware
Wat moet in een interrupthandler het meest worden vermeden?
- AEen vlagvariabele op 1 zetten om het hoofdprogramma te informeren
- BHet bit wissen dat de oorzaak van de interrupt aangeeft
- CTijdrovende bewerkingen, zoals een lange tekenreeks uitvoeren met printf of een lus die blijft wachten tot er iets gebeurt
Antwoord en toelichting tonen
Antwoord: C. Tijdrovende bewerkingen, zoals een lange tekenreeks uitvoeren met printf of een lus die blijft wachten tot er iets gebeurt
Als een interrupthandler lang actief is, kan hij gedurende die tijd niet op andere interrupts reageren en staat ook het hoofdprogramma stil. Printf kost tijd tot de uitvoer klaar is en gebruikt intern soms interrupts, dus is bijzonder gevaarlijk. In de handler voert men alleen minimale bewerkingen uit, zoals gegevens ontvangen en in een buffer plaatsen of een vlag zetten, en zware verwerking laat men aan het hoofdprogramma of een taak over. Vergeet ook niet het bit te wissen dat de oorzaak aangeeft.