Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

C++ Seite

Inhalt

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


Lektion 1: DigitalOut-Klasse


Lektion 2: 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

ApplBoard Demos (auch WebSocket)

MQTT-Kommunikation Heise MQTT-Essentials MQTT Einführungsvideo

Blinky Codes


All wikipages