FSST - Hardwarenahe Programmierung
You are viewing an older revision! See the latest version
C++ Seite
Objektorientierte hardwarenahe Programmierung¶
Klassen in C++¶
Membervariable, Methoden, Konstruktor, Statische Member, Zugriffsspezifizierer
MBED SDK Coding Style/neu in OS5 Style Guide und C++ Coding Style.
mbed Library Internals - Software Layers and APIs
Github Mbed
Datentypen
Lektion 0: Blinky-Klassenerzeugung eines neuen Datentyps
- Ausgangssituation mit Funktionen
- Klasse MyLed und Beispiel
- Beispiele zu Leds und Klassen
- Erzeugen einer Bibliothek MyLed
Lektion 1: DigitalOut-Klasse
- Blinky im Simulator
- Klasse Blinky im Simulator
- HasA versus IsA-Vererbung
Lektion 2: PWM-Klasse
- Klasse PWM für RGB-Led
- Aufgabe PWM-Vererbung
- AddOn: Software PWM-Klasse
Lektion 3: I2C und Temperatursensor LM75B
Aufgabe I2C-Sensoren Suchen Sie für unterschiedliche Sensoren (wie z.B.: BMP180, AS3935, MCP4725, PCA9555, MPU-6000, ...) Datenblätter und Klassenimplementierungen. Untersuchen Sie die Programmierweise der Klassen (Konstante: Adressen, Register, private und öffentliche Elemente der Klasse, Methoden und ihre Implementierung, ...). Sofern möglich testen Sie die Klassenbibliothek in einem Testprojekt/-programm im MBED-Compiler. Veröffentlichen Sie die bearbeiteten Sensoren (mindestens drei) auf Ihrer MBED-Homepage mit einer kurzen Beschreibung und dem Link zur Klassenbibliothek. Veröffentlichen Sie Ihr Testprojekt.
Vererbung in C++¶
Ereignisse¶
Lektion 4: Interrupt/Event-Klasse
Aufgabe ISR Schreiben Sie eine Klasse SwEvent in der Sie ähnlich der DigitalIn-Klasse einen InterruptIn-Pin _isr (von z.B. sw1 P0_10) übergeben können und eine ISR-Routine hinzufügen (rise) in der Sie ein Flag setzen, wenn der Taster gedrückt wurde, das mit der Methode checkFlag() abgefragt und gelöscht werden soll.
Lektion 5: Serial-RX Interrupt-Klasse
Aufgabe Serial Schreiben Sie eine Klasse SerialEvent in der Sie ähnlich der I2C-Klassen TX- und RX-Pins übergeben können und einem DataReceive-Interrupt eine ISR-Routine hinzufügen (attach) und ein Flag setzen, wenn ein Zeichen empfangen wurde, das mit der Methode checkFlag() wieder abgefragt und gelöscht werden soll.
State Machine Implementierung¶
- UML Zustandsdiagram von UML@Classroom; Zustandsdiagramm (Statechart Diagram)
- Zustandsdiagramm (Coding Style) mit Zuständen und Zustandsübergängen.
- STM-Implementierung mit Klassen
ApplBoard Demos (auch WebSocket)
MQTT-Kommunikation Heise MQTT-Essentials MQTT Einführungsvideo