Bevor man sich an die Programmierung von irgendeinem Prozessor macht, muss man natürlich erst einmal wissen, wie ein Programm überhaupt aufgebaut ist.
Objektorientierte Programmierung kann man bei einem solchen kleinen Gerät natürlich mal total vergessen, hier wird ein Programm nur von ganz oben nach ganz unten abgearbeitet.
Dies nennt man das EVA-Prinzip:
Eingabe:
Der Prozessor bekommt Daten über einen Pin geliefert oder misst irgendetwas: Eine Spannung, einen Widerstand oder einfach nur ein High/Low Signal (Spannung liegt an/liegt nicht an).
Verarbeitung:
Jetzt wird mit dem Wert etwas gemacht. Eventuell muss ihn umrechnen, oder man berechnet einen Wert der auf einem Display gezeigt werden soll, oder man möchte diesen Wert mit einem gespeicherten Wert vergleichen?
Ausgabe:
Jetzt wird gehandelt! Der Prozessor schreibt etwas auf ein Display, eine Led wird vielleicht zum leuchten gebracht oder es wird etwas viel größeres gesteuert.
Nachdem diese drei Schritte abgearbeitet wurden, fängt das ganze wieder von vorne an. Es wird wieder Eingelesen, Verarbeitet und dann Ausgegeben: EVA nunmal.
Mit Sicherheit hat es jeder schon herausgefunden: Wir brauchen eine Endlosschleife. Aber schauen wir uns doch mal ein "einfaches" Programm einmal an:
#include <avr/io.h>
int main ( void ) {
//Initialisierung
while ( 1 ) {
//Hauptprogramm
}
}
Und nun die Erklärung:
- Die erste Zeile bindet einfach nur eine Header-Datei ein, die wir für die avr-Prozessorserie brauchen.
- Die zweite Zeile ist der Hauptfunktion. Ihr könnt in eurem C-Programm beliebig viele Funktionen schreiben, die erste die beim Start ausgeführt wird, ist und bliebt aber die main(void).
- Als nächstes kommt die Initialisierung. Diese wird beim Start eures Prozessors einmal durchgeführt: Hier könnt ihr bestimmen, welche Pins des Prozessors Eingänge oder Ausgänge sind. Ihr könnt euch die Variablen anlegen, die ihr braucht, oder auch eine serielle Kommunikation vorbereiten.
- Nun folgt die prophezeite Endlosschleife. "while(1)" wird garantiert niemals beendet. In dieser Endlosschleife könnt ihr jetzt eure Anweisungen hineinschreiben. Denk immer daran, wie man das macht:
- Erst liest mal Werte ein
- Dann verarbeitet man sie
- Zum Schluss erfolgt die Ausgabe.
Bevor ich jetzt aber den Begriff EVA nochmal in den Mund nehme, beende ich schnell mal dieses Kapitel. Nun wisst ihr wie ein "normales" Programm aufgebaut ist