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.
Dependencies: mbed
Fork of V3_ErsterVersuch by
main.cpp
- Committer:
- Stoeppke
- Date:
- 2014-06-04
- Revision:
- 0:ca528b525f28
- Child:
- 1:85d5fcea9bc4
File content as of revision 0:ca528b525f28:
#include "mbed.h" DigitalOut LedOut(P1_18); DigitalIn BtnIn1(p8); DigitalIn BtnIn2(p14); InterruptIn IrBtn1(p8); InterruptIn IrBtn2(p14); int jetzt=0; //schalter für alle 4 Sekunden int BtnCheck=1; //Sicherung gegen Umschalter an-aus void BtnDown() { jetzt=1; } void BtnUp() { BtnCheck=1; } int main() { IrBtn1.fall(&BtnDown); IrBtn2.fall(&BtnDown); IrBtn1.rise(&BtnUp); IrBtn2.rise(&BtnUp); int LedSw=0; //Switch welches die LED aus schaltet und veraenderungen an der Helligkeitsvariablen verhindert int count=0; //timer absolut int LedPwm=0; //timer 0 bis 100 fuer Led PWM int Btn1=0, Btn2=0, Led=0; //Abgreifen der Physischen Eingaenge int hell=50; //Helligkeitsvariable while(1) { //Auslesen der BTN Inputs Btn1 = !BtnIn1; Btn2 = !BtnIn2; /* * Switch * Led und Helliugkeits-steuerung An-Aus Schalter */ if (Btn1 && Btn2 && BtnCheck) { BtnCheck= 0; //BtnCheck Variable muss in einem Interrupt BtnUp wieder auf 1 gesetzt werden!!! LedSw = !LedSw; } /* * 4 Sekunden timer * Loest alle 4 Sekunden aus Um langsam die Helligkeitsstufen zu durchlaufen. */ count++; jetzt = (count==4000); //jetzt Variable muss in einem Interrupt BtnDown wieder auf 1 gesetzt werden. count = count * !(jetzt); /* * Heller Dunkler * Veraenderung der Helligkeitsvariablen */ hell = hell + (Btn2 && LedSw && jetzt && (hell<=99)); hell = hell - (Btn1 && LedSw && jetzt && (hell>=1)); /* * PWM Timer * Timer von 0 bis 100 um die LED leuchten zu lassen. * Die Led ist nur an wenn sie nicht via LedSw aus geschaltet ist und die Helligkeitsvariable groesser dem PWM Timer ist. */ LedPwm++; LedPwm = LedPwm * !(100==LedPwm); Led = LedSw && (LedPwm<hell); //zuweisen auf LED Output LedOut=Led; wait_ms(1); } }