C-Programmierung mit AVR-GCC/ Aufbau eines Programmes

Bis jetzt haben wir viele Grundlagen besprochen. Das Gelernte wollen wir nun in die Tat umsetzen. In diesem Kapitel dreht sich alles um den Aufbau eines eigenen Programmes für den AVR. Grundsätzlich gibt es zwei verschiedene Arten von Mikrocontrollerprogrammen, die nun näher erläutert werden.

Sequentieller Programmaufbau

Bearbeiten
 
Sequentieller Programmablauf

Beim sequentiellen Programmablauf werden, wie der Name schon sagt, Aktionen nacheinander ausgeführt. Das Programm hat dann also einen linearen Verlauf und wird auf eine Endlosschleife aufgebaut. Der Programmablauf wird meist durch eine while-Schleife erzeugt. Diese hat den Vorteil, dass sie schnell geschrieben ist und keine Zählervariable erfordert, die unnötig Speicherplatz im RAM belegt.

Interruptgesteuerter Programmaufbau

Bearbeiten
 
Interruptgesteuerter Programmablauf

Die zweite Variante ist der interruptgesteuerte Programmablauf. Er ist im Großen und Ganzen ähnlich dem oben besprochenen sequentiellen Programmablauf hat aber zusätzlich die Möglichkeit das Hauptprogramm zu unterbrechen und somit auf äußere Ereignisse zu reagieren. Beispielsweise kann mit einem Interrupt (dt. Unterbrechung) auf einen Tastendruck reagiert werden. Ebenso sind interne Interrupt möglich, die zu Beispiel angeben können, dass eine gewisse Zeit vorbei ist.

Bei der sequentiellen Programmierung kommst du schnell an die Grenzen des Machbaren. Beispielsweise kannst du nicht auf die Betätigung eines Tasters warten und gleichzeitig eine LED blinken lassen. Der Vorteil bei interruptgesteuerten Programmen ist, dass du im Hauptprogramm eine Endlosschleife hast und durch Ereignisse (Interrupts) das Hauptprogramm kurz unterbrochen wird. Ist der Interrupt abgehandelt, wird das Hauptprogramm an der selben Stelle weiter ausgeführt.

Mehr zu Interrupts gibt es in einem eigenen Kapitel.