Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Digital IO Grundlegend
- DigitalOut Class Reference Programm:
Wie liest man eine Klassenreferenz (class reference) und wie werden die Elemente der Klasse (member functions and operators) in einem Programm verwendet. - DigitalIn Program
Für das Abfragen ob ein Taster (Button, Joystick, Schalter) gedrückt wurde. Später werden damit Interrupts ausgelöst und ISR (Interrupt Service Routinen) definiert und abgearbeitet. - BusOut Programm
Um mehrere DigitalOut-Pins zu kombinieren und damit auch auf sie gleichzeitig zu schreiben - mehrere Pins als eine einzelne Schnittstelle, anstelle einzelner Pins gleichzeitig zu beschreiben.
Fragen¶
- Welche Bibliotheksfunktionen stehen für DigitalOut zur Verfügung?
- Definiere einen Output-Pin mit dem Namen myLed und initialisiere ihn mit digital „0“.
- Wie wird ein DigitalOut-Pin definiert? (C++ Beispiel für z.B. p5)
- Wie wird ein DigitalIn-Pin definiert? (C++ Beispiel für z.B. Joystick-Pins )
- Welche Spannungswerte am Pin werden wie interpretiert?
- Welche Bibliotheksfunktionen stehen für DigitalIn zur Verfügung?
- Welche Modi können an einem DigitalIn-Pin mit der Funktion „mode“ konfiguriert werden?
- Wo liegen die Unterschiede zwischen DigitalOut, DigitalIn und DigitalInOut?
- Welche Digital I/O Klassen stehen für eine flexible Möglichkeit mehrere digitale Pins anzusprechen?
- Wie wird ein BusOut definiert? (Beispiel mit 4 Leds)?
Aufgaben:¶
Information
Veröffentlichen Sie das jeweils fertige Programm aus dem mbed-Compiler mit dem Programm-Namen aus den [eckigen Klammern] nach der fortlaufenden Nummer
ODER
wenn Sie die Programme im mbed-Simulator schreiben erzeugen Sie eine entsprechende WIKI-Seite mit kurzer Programmbeschreibung und dem Code (siehe WIKI-Syntax mit Titel aus den [eckigen Klammern].
1. [DreiLed] Schreibe ein Programm in mbed C++, das die blaue LED1 mit 100Hz blinken lässt
- zusäztlich die LED2 mit 50Hz blinken lässt
- LED3 dann leuchtet, wenn LED1 und LED2 eingeschaltet sind.
2. [LedFunc] Schreibe folgende Funktion:
- allLedsOn(), die alle 4 blauen LEDs einschaltet
- allLedsOff(); die alle 4 blauen LEDs ausschaltet
- changeLed1(), die die Led LED1 toggelt (wenn sie ein (1) ist dann aus (0) und umgekehrt)
- changeLed(led), mit dem Parameter der Led, sodass verschiedene Leds getoggelt werden können
3. [SelLed] Definiere eine 4-Bit Konstante und gebe den Wert auf die vier blauen Leds aus (nur diejenigen Leds werden eingeschaltet, die im Wert gesetzt sind).
- 3a. schreibe obigen Code in die Funktion selectivLedsOn(wert).
4. [LaufDig] Erstelle mit Hilfe der DigitalOut ein Lauflicht mit den integrierten vier blauen LEDs.
5. [Knightrider] Erstelle mit Hilfe der DigitalOut ein Programm zur Erzeugung des LED-Sweep-Effekt „Knightrider“ mit den integrierten vier blauen LEDs.
6. [BtnLed1] Schreibe ein Programm in mbed C++, das die LED1 mit 100Hz blinken lässt. Nach drücken des Joysticks (BUTTON1 im Simulator) soll die LED1 mit 50Hz blinken und nach einem weiteren drücken wieder mit 100Hz.
7. [BtnLauflicht] Schreibe ein Lauflicht für die vier blauen Leds und schalte durch drücken des Joysticks (BUTTON1 im Simulator) die Laufrichtung um.
8. [BtnCnt] Zähle wie oft der Joystick (BUTTON1 im Simulator) gedrückt wurde und schalte für je 5 Mal drücken die nächste blaue Led ein.
9. [LaufBus] Erstelle mit Hilfe der BusOut ein Lauflicht mit den integrierten vier blauen LEDs.