MPro _ 3 Mann / Mbed 2 deprecated V3_ErsterVersuch_FERTIG

Dependencies:   mbed

Fork of V3_ErsterVersuch by MPro _ 3 Mann

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);

    }
}