Studienleistung 1 FINAL (BETA-5)
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 Ticker systick; 00003 volatile char bstandby; 00004 DigitalOut spg(p21); // U versorgung schalter 00005 DigitalOut spg2(p22); // U versorgung schalter 00006 DigitalOut rightled(LED4); 00007 DigitalOut leftled(LED1); 00008 DigitalIn left(p8); 00009 DigitalIn right(p14); 00010 Serial pc(USBTX, USBRX); 00011 Timer l; // Plink Timmer links 00012 Timer r; // Blinktimmer Rechts 00013 Timer pl; //BRELLTIMER LINKS; brellen und timeverschiebung für zustand dauerhaft plinken 00014 Timer pr; // BRELLTIMER RECHTS; brellen und timeverschiebung für zustand dauerhaft Plinken 00015 int anzleft; 00016 int anzright; 00017 int auswahlleft; 00018 int auswahlright; 00019 //==================================================00 00020 void vTimer(void){ 00021 bstandby =1; 00022 } 00023 //================================================ 00024 void blinkswitch(DigitalOut *led, int *anz, int *auswahl, Timer *tim){ // tim = l oder r 00025 switch(*auswahl){ 00026 case 0: *led =0; 00027 break; 00028 case 1:{ 00029 if(tim->read()>= 0.3 || *anz == 8){ *led =! *led; tim->reset() ; *anz -=1; pc.printf(" %d",*anz);} 00030 if(*anz == 0) *auswahl = 0;} 00031 break; 00032 case 2:{ 00033 if((*tim).read() >= 0.3){ *led =! *led ; (*tim).reset();pc.printf("BIN IN SEc 2 " );} 00034 00035 } 00036 break; 00037 00038 } 00039 } 00040 00041 //=?======================================================000 00042 00043 int main() { 00044 spg = 1; // Spannungsversorgung der angeschloosenen schalter 00045 spg2 =1; // Spannungsversorgung der angeschlossenen schalter 00046 auswahlleft = 0; 00047 auswahlright = 0; 00048 00049 while(1) { 00050 // systick.attach_us(&vTimer, 200); 00051 if(left == 1){ 00052 //pc.printf("LINKS LIEGHT AN \n\n"); 00053 if(auswahlleft == 0 && pl.read() >= 0.05){auswahlleft =1; anzleft =8; l.start();pl.reset();pl.start();} 00054 if(auswahlleft ==1 && pl.read()>= 0.5) {auswahlleft = 2;pl.stop();pl.reset();} 00055 }else { 00056 if(auswahlleft ==2)auswahlleft =0; 00057 pl.start();} 00058 blinkswitch(&leftled,&anzleft, &auswahlleft, &l); 00059 00060 if(right ==1){ 00061 if(auswahlright ==0 && pr.read() >= 0.05) { auswahlright =1; anzright= 8; r.start () ; pr.reset(); pr.start();} 00062 if(auswahlright == 1 && pr.read() >=0.5 ) { auswahlright =2 ; pr.stop(); pr.reset();} 00063 }else { 00064 if(auswahlright == 2) auswahlright =0; 00065 pr.start();} 00066 blinkswitch(&rightled,&anzright, &auswahlright, &r); 00067 // while(bstandby == 0); 00068 // bstandby = 1; 00069 }; 00070 }
Generated on Tue Aug 2 2022 02:44:38 by
1.7.2