Hardware-Konfiguration: LED-Modul Pmod8LD an Stecker JC.
Programmdatei: test_interrupt.c
Das Experiment verlangt ein LED-Modul an am Stecker JC. Timer 3 erzeugt alle 0,5 s einen Vergleichsinterrupt A und Timer 1 alle 8 s ein Überlaufsinterrupt. Die On-Board-LED LD1 bis LD8 werden in der Interruptroutine des Vergleichinterrupts von Timer 3 und die LEDs an JC bei jedem Neustart hochgezählt. In der Grundversion ist zu erkennen, dass alle 0,5s die ISR aufgerufen wird und alle 8s das Programm neu startet. Im zweiten Versuch wird der Neustart durch den nicht behandelten Timer-1-Überlauf mit einer "Bad_ISR" unterbunden. Wenn das Kommentarzeichen vor der Anweisung zur Invertierung der Ausgabe an LD8 gelöscht wird, wird das Blinken ungleichmäßig. Die Unregelmäßigkeit verschwinden, wenn während der Invertierung von LD8 die Unterbrechung durch die ISR unterbunden wird.
Autor: gkemnitz, Letzte Änderung: 06.11.2024 20:33:30