Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
button_und_led [2017/03/17 17:47] – huwaldt | button_und_led [2019/07/25 21:40] (aktuell) – [Realisierung] huwi | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Es ist eine Mikrocontrolleranwendung zu entwickeln, bei der durch Drücken einer Taste eine LED eingeschaltet wird. | Es ist eine Mikrocontrolleranwendung zu entwickeln, bei der durch Drücken einer Taste eine LED eingeschaltet wird. | ||
- | >>> | + | > |
===== Vorbereitung ===== | ===== Vorbereitung ===== | ||
Zeile 11: | Zeile 11: | ||
// | // | ||
- | {{: | + | >{{: |
- | + | ||
- | + | ||
===== Lösungsansatz ===== | ===== Lösungsansatz ===== | ||
Zeile 23: | Zeile 20: | ||
Navigieren wir zu den Quelldiagrammen des Tasters, ergibt sich das folgende Gesamtbild: | Navigieren wir zu den Quelldiagrammen des Tasters, ergibt sich das folgende Gesamtbild: | ||
- | >>> | + | > |
Klassendiagramme sind die Konstruktionszeichnungen einer objektorientierten Anwendung. Kein Elektrotechniker würde sich mit der textuellen Beschreibung einer Schaltung zufrieden geben. Wehement würde er auf einen Schaltplan drängen. Fragt sich, warum sich manche Programmierer mit Nachdruck gegen die UML stemmen. Die Antwort ist unter Umständen recht trivial. Sie können die UML nicht lesen. Ein Elektroniklaie würde bei Vorlage eines Schaltplanes, | Klassendiagramme sind die Konstruktionszeichnungen einer objektorientierten Anwendung. Kein Elektrotechniker würde sich mit der textuellen Beschreibung einer Schaltung zufrieden geben. Wehement würde er auf einen Schaltplan drängen. Fragt sich, warum sich manche Programmierer mit Nachdruck gegen die UML stemmen. Die Antwort ist unter Umständen recht trivial. Sie können die UML nicht lesen. Ein Elektroniklaie würde bei Vorlage eines Schaltplanes, | ||
Zeile 36: | Zeile 33: | ||
Damit lässt sich doch unsere Aufgabe locker lösen. Die Operation // | Damit lässt sich doch unsere Aufgabe locker lösen. Die Operation // | ||
- | >>> | + | > |
Ziehen Sie die Klassen //Button// und //Led// in den neuen Entwurf. Verbinden Sie diese mit der Klasse // | Ziehen Sie die Klassen //Button// und //Led// in den neuen Entwurf. Verbinden Sie diese mit der Klasse // | ||
Zeile 46: | Zeile 43: | ||
* und eine //roteLED// | * und eine //roteLED// | ||
- | >>> | + | > |
Die Initialisierung erfolgt, wie gehabt, in der Operation // | Die Initialisierung erfolgt, wie gehabt, in der Operation // | ||
- | >>> | + | > |
- | >>>< | + | >< |
roteLED.config(GPIOD, | roteLED.config(GPIOD, | ||
taste.config(GPIOA, | taste.config(GPIOA, | ||
</ | </ | ||
- | >>> | + | > |
Die Verarbeitungslogik erfolgt in der Operation //onWork// im Polling. | Die Verarbeitungslogik erfolgt in der Operation //onWork// im Polling. | ||
- | >>> | + | > |
- | >>>< | + | >< |
bool ok; | bool ok; | ||
ok=taste.isPressed(); | ok=taste.isPressed(); | ||
Zeile 72: | Zeile 69: | ||
- | >>> | + | > |
===== Test ===== | ===== Test ===== | ||
Zeile 96: | Zeile 93: | ||
Und hier diesen Abschnitt wiederum als Videozusammenfassung. | Und hier diesen Abschnitt wiederum als Videozusammenfassung. | ||
- | >>>< | + | >< |
====== Übung ====== | ====== Übung ====== |