User manual
Entwicklung von Klassendiagrammen Seite: 93/152
© Laser & Co. Solutions GmbH Benutzerhandbuch SiSy
8.3.7 Interrupt-Service-Routinen (ISR) im Klassendiagramm
Interrupt-Service-Routinen (im weiteren ISR) werden in AVR C++ durch das Schlüssel-
wort ISR gekennzeichnet. Sie bilden eigenständige Funktionen. Die Besonderheit bei
der Realisierung einer ISR liegt darin, dass es sich hier um ein C-Makro handelt und
nicht um eine echte Funktion. Diese können also keine Methode einer Klasse sein. Um
eine ISR im Klassendiagramm zu realisieren gehen Sie wie folgt vor (Erweiterung des
Beispiels um die Klasse Timer und der ISR Timer0 Overflow):
1. Die Klasse für die interruptfähige Komponente modellieren und die Methode ein-
fügen, welche beim Interrupt ausgeführt werden soll. In unserem Beispiel ist es
die Klasse Timer mit der Methode overflow. Die Initialisierung des Timers
muss entsprechend erfolgen.
2. Ergänzen Sie das Klassendiagramm weiter entsprechend der Abbildung.
Beispiel für Ergänzung der main:
#include <io.h>
// Instanz der interruptfähigen Klasse anlegen
Timer Timer0;
// Interuptmakro mit Aufruf der betreffenden Methode
ISR (TIMER0_OVF_vect)
{
Timer0.overflow();
}
In der Interrupt-Service-Routine rufen Sie nur die Methode der betreffenden Klasse auf.
Timer0.overflow();