Studienleistung 1 FINAL (BETA-5)

main.cpp

Committer:
chrish
Date:
2013-05-14
Revision:
0:738510c1e7fe

File content as of revision 0:738510c1e7fe:

#include "mbed.h"
Ticker systick;
volatile char bstandby;
DigitalOut spg(p21); // U versorgung schalter
DigitalOut spg2(p22);  // U versorgung schalter 
DigitalOut rightled(LED4);
DigitalOut leftled(LED1);
DigitalIn left(p8);
DigitalIn right(p14);
Serial pc(USBTX, USBRX);
Timer l;    // Plink Timmer links
Timer r;    // Blinktimmer Rechts
Timer pl;   //BRELLTIMER LINKS; brellen und timeverschiebung für zustand dauerhaft plinken
Timer pr;   // BRELLTIMER RECHTS; brellen und timeverschiebung für zustand dauerhaft Plinken
int   anzleft;
int  anzright;
int auswahlleft;
int auswahlright;
//==================================================00
void vTimer(void){
bstandby =1;
}
//================================================
void blinkswitch(DigitalOut *led, int *anz, int *auswahl, Timer *tim){ // tim = l oder r 
    switch(*auswahl){
    case 0: *led =0;
    break;
    case 1:{
       if(tim->read()>= 0.3 || *anz == 8){  *led =! *led; tim->reset() ; *anz -=1; pc.printf("   %d",*anz);}
        if(*anz == 0) *auswahl = 0;}
    break;
    case 2:{
    if((*tim).read() >= 0.3){  *led =! *led ; (*tim).reset();pc.printf("BIN IN SEc 2  " );}
    
    }
    break;
    
    }
}

//=?======================================================000
 
int main() {
spg = 1; // Spannungsversorgung der angeschloosenen schalter
spg2 =1;  // Spannungsversorgung der angeschlossenen schalter
auswahlleft = 0;
auswahlright = 0;

    while(1) {
   // systick.attach_us(&vTimer, 200);
    if(left == 1){
   //pc.printf("LINKS LIEGHT AN \n\n");
    if(auswahlleft == 0 && pl.read() >= 0.05){auswahlleft =1; anzleft =8; l.start();pl.reset();pl.start();}
    if(auswahlleft ==1 && pl.read()>= 0.5) {auswahlleft = 2;pl.stop();pl.reset();} 
    }else {
        if(auswahlleft ==2)auswahlleft =0;
        pl.start();}
    blinkswitch(&leftled,&anzleft, &auswahlleft, &l);
    
    if(right ==1){
        if(auswahlright ==0 && pr.read() >= 0.05) { auswahlright =1; anzright= 8; r.start () ; pr.reset(); pr.start();}
        if(auswahlright == 1 && pr.read() >=0.5 ) { auswahlright =2 ; pr.stop(); pr.reset();}
        }else {
            if(auswahlright == 2) auswahlright =0;
            pr.start();}
        blinkswitch(&rightled,&anzright, &auswahlright, &r);
   // while(bstandby == 0);
   // bstandby = 1;
    };
}