In den vergangenen Folgen ging es ja schon um die Optimierung der Programmierung für unsren Kaffeeautomaten.
Bei der Aufgabenstellung zur Auslagerung von Code in Funktionen habe ich ja schon angedeutet, dass man nicht unbedingt die Münzschachtnummer UND den Wert der Münze bei jedem Funktionsaufruf übergeben muss.
Wenn man weiß in welchen Münzschacht eine Münze liegt, kennt man ja auch den Wert der Münze.
Bei der ersten Lösung haben wir der Einfachheit beide Informationen an die Funktion Eingabe() übergeben und dort ausgewertet.
Im folgenden soll es darum gehen, nur die Nummer des Münzschachts zu übergeben und dann aus dieser Information, den Wert der Münze zu ermitteln.
Array
Dies lässt sich einfach über sogenannte Arrays realisieren.
In einem Array lassen sich Daten gleichen Typs in einem Feld anordnen.
Die einzelnen Daten lassen sich dann über einen fortlaufenden Index ansprechen.
Also genau das, was wir brauchen.
Beim Kaffeeautomaten lassen sich die einzelnen Münzschächte durchnummerieren. Die Zuordnung Schacht-Nummer und Münzwert lässt sich dann über ein Array realisieren.
Im Video zeige ich die
- Definition des Arrays
- die Möglichkeiten der Initialisierung
- und das Auslesen des Arrays
Nun bist Du wieder an der Reihe
Das Array soll nun verwendet werden, um die Parameterübergabe an die Funktion Eingabe zu erleichtern. Es soll in folgenden nur noch der Index des Schachtes [0 … 7] übergeben werden.
In der Funktion Eingabe() soll dann der korrekte Münzwert über das Array ermittelt werden und der Gesamtbetrag entsprechend erhöht werden.
Das Zurücksetzen des Ports ist nun etwas schwieriger, weil wir die Schachtnummer als Index von 0 bis 7 und nicht mehr als binärcodiertes Portbit zur Verfügung haben.
Kümmere Dich also noch nicht um das Zurücksetzen des Ports. Dies wird Inhalt des nächsten Artikels sein.
Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]