FSST - Hardwarenahe Programmierung

You are viewing an older revision! See the latest version

Aufgaben Vererbung

Klasendesign und Konstruktor

1. Schreiben Sie die Klasse DigitalOut (siehe DigitalOut.h) auf Deutsch um :

/media/uploads/fpucher/digitalaus_.jpg

Lösung?

2. Schreiben Sie eine Klasse MyTimer die abgeleitet wird von der Timer-Klasse und benennen Sie alle Methoden so um, dass sie mit großem Anfangsbuchstaben beginnen. Testen Sie Ihre MyTimer-Klasse, indem Sie ein MyTimer-Objekt tm erzeugen, mit tm.Start() den Timer starten und mit tm.Stop() anhalten und das Ergebnis mit tm.CheckTimerMS() auf die serielle Schnittstelle mit pc.printf() ausgeben.

Lösung?

3. Wie unter Punkt 1. (zeichnen Sie auch das dazugehörige UML-Klassendiagramm) nur für "alle" Klassen aus Drivers, wie z.B.:

  • BusInOut, BusInOut, BusIn
  • DigitalInOut, DigitalIn
  • PortOut, PortInOut, PortIn
  • usw.

Neue Methoden hinzufügen

Überschreiben von Methoden der Basisklasse

Erweitern von Methoden der Basisklasse

Überladen von Methoden

5. Erweitern Sie die Klasse DigitalOut (siehe DigitalOut.h) um das Argument zustand, dass den aktuellen Wert des Output-Pins zwischenspeichern soll. Überladen Sie die Operation read() so, dass der gpio-Wert zurückgegeben wird und in einem neuen Parameter der Wert des Arguments zustand. Überladen Sie die Operation write() so, dass auch der zustand entsprechend gesetzt wird. Überladen Sie den Konstruktor so, dass zusätzlich zum Pinnamen auch das Argument zustand auf einen bestimmten Wert gesetzt werden kann. Überladen Sie den Operator = sodass eine Zuweisung wie z.B. eine Invertierung (led=!led;) möglich ist. Berücksichtigen Sie auch hier das Argument zustand.


All wikipages