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.
You are viewing an older revision! See the latest version
Lekt1_Digital_io
Wiki-Seite
Gehe auf die Lehrerbox/PE/TINF und kopiere den Inhalt der Datei program-wiki.txt
auf IHRE EIGENE Wiki-Seite und ändere bzw. erweitere die entsprechenden Programme bzw. Textteile.
Diese Programme wurden im Mbed-Simulator geschrieben und getestet.
Lektion: DreiLed¶
Programmbeschreibung:
Änderungen:
Datum:
A1_Lekt1_DreiLed_Digitalio.cpp
/* A1_[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. */ #include "mbed.h" DigitalOut led1(D0); DigitalOut led2(A1); void a1_dreiled(); int main() { while(1) { a2_ledfunc(); } } void a1_dreiled() { led1=!led1; wait(0.50); //besser erkennbar led2=!led2; wait(0.25); //besser erkennbar if(led1==1 &&led2==1) { led3=1; } else { led3=0; } }
Lektion: LedFunc
Programmbeschreibung:
Änderungen:
Datum:
A2_Lekt1_LedFunc_Digitalio.cpp
/* 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 */ #include "mbed.h" BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5); void all_ledson(); void all_ledsoff(); void changeled1(); void changeled(); int main() { while(1) { all_ledson(); wait_ms(500); all_ledsoff(); wait_ms(500); } } void all_ledson() { leds=0xff; changeled(); } void all_ledsoff() { leds=0x00; changeled(); } void changeled() { int mask=0x01; //einfach gewünschte led einstellen. int value=mask; leds=leds^value; }
Lektion: SelLed
Programmbeschreibung:
Änderungen:
Datum:
A3_Lekt1_SelLed_Digitalio.cpp
/* 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). */ #include "mbed.h" BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5); int selectivLedsOn(int wert); int main() { int value=0; while(1) { value=selectivLedsOn(value); leds=leds|value; wait(1); } } int selectivLedsOn(int wert) { wert=0b1101; return wert; }
Lektion: LaufDig
Programmbeschreibung:
Änderungen:
Datum:
A4_Lekt1_LaufDig_Digitalio.cpp
/* 4. [LaufDig] Erstelle mit Hilfe der DigitalOut ein Lauflicht mit den integrierten vier blauen LEDs. */ #include "mbed.h" //BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5); BusOut leds(D0,D3,D6,D9); void laufdig(); int main() { while(1) { laufdig(); } } void laufdig() { leds=1; wait_ms(200); for(int i=0;i<5;i++) { leds=leds<<1; wait_ms(200); } }
Lektion: Knightrider
Programmbeschreibung:
Änderungen:
Datum:
A5_Lekt1_Knightrider_Digitalio.cpp
/* 5. [Knightrider] Erstelle mit Hilfe der DigitalOut ein Programm zur Erzeugung des LED-Sweep-Effekt „Knightrider“ mit den integrierten vier blauen LEDs. */ #include "mbed.h" BusOut leds(D0,D3,D6,D9,D11,D12,A1,A5); void knightrider(); int main() { while(1) { knightrider(); } } void knightrider() { leds=1; wait_ms(300); for(int i=0;i<3;i++) //4 lichter einschalten { leds=leds<<1|1; wait_ms(300); } for(int i=0;i<8;i++) //4 lichter verschieben { leds=leds<<1; wait_ms(300); } //retour leds=128; wait_ms(300); for(int i=0;i<3;i++) //4 lichter einschalten { leds=leds>>1|128; wait_ms(300); } for(int i=0;i<8;i++) //4 lichter verschieben { leds=leds>>1; wait_ms(300); } }