Lösung für eine Funktion zur Münzeingabe

Im heutigen Artikel möchte ich eine mögliche Lösung für die Aufgabe aus dem letzten Artikel, nämlich die Programmierung der Funktion Eingabe() für unseren Kaffeeautomaten vorstellen.

Wie immer gibt es verschiedene Möglichkeiten die Funktion zu realisieren.

Mein Vorschlag ist daher nur eine mögliche Lösung. Es gibt sicher elegantere Lösung. Vor allem der Umgang mit der Variablen Betrag lässt sich sicher noch optimieren :-). Nähere Information gibt es dazu Video.

Die Anforderungen an die Funktion Eingabe()

In der Funktion Eingabe sollen zwei Dinge umgesetzt werden.

  1. Die Erhöhung des Gesamtbetrages um den Wert der eingeworfenen Münze und die Ausgabe des Gesamtbetrages.
  2. Das Zurücksetzen des entsprechenden Portbits, damit die Münze beim nächsten Durchlauf nicht noch einmal gezählt wird.

Um die Funktion Eingabe() zu realiseren, musst Du verschiedene Dinge, die Du in den vergangenen Folgen gelernt hast umsetzen.

Zur Verwendung von Funktionen kannst Du Dir evtl, noch einmal die Videos ab Artikel 22 Funktionen in C angucken.

Auch die Videos zur Variablenzuweisung, zur if-Abfrage und zur Bitweisen Manipulation können vielleicht helfen.

Während der erste Teil, Die Erhöhung des Gesamtbetrages um den Wert der eingeworfenen Münze und die Ausgabe des Gesamtbetrages, noch verhältnismäßig einfach ist, geht es bei dem 2. Teil der Aufgabe schon ziemlich zur Sache.

Wie häufig bei Funktionen, bei denen die Ausführung abhängig von Parametern ist, ist es auch in diesem Beispiel so, dass Du bei der Programmierung der Funktion noch nicht weißt, welche Parameter übergeben werden. Du musst also die Funktion so flexibel gestalten, dass aus den übergebenen Parametern die durchzuführenden Befehle errechnet werden können.

Eine mögliche Lösung findest Du im Video.

Funktion zur Muenzeingabe.flv

Bis zum nächsten Mal.

Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]

weitere Videos

Februar 18, 2010

März 2, 2010

Juli 30, 2020

März 15, 2010

Januar 3, 2013

Januar 25, 2010

>