Gottfried Enenkel / Mbed 2 deprecated _B16_SHOW1

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // B16_TEST V0.9 Alles  
00002 // SHOW SOFTWARE für B16  
00003 // BULME Graz,     by Enenkel   26.5.2016
00004 /* 
00005  */
00006  
00007 #include "mbed.h"
00008 // ********   Definitionen  **********
00009 DigitalOut Von(P2_13);       // 12V on
00010 // Definition der 12 LED's 
00011 DigitalOut WSLI(P1_10);     //wsS links  D1
00012 DigitalOut WSRE(P1_12);     //wsS rechts D4
00013 DigitalOut GELIVO (P1_11);  //ge links vorn D2
00014 DigitalOut GEREVO (P1_13);  //ge rechts vorn D5
00015 DigitalOut GELIHI(P1_14);   //ge links hinten D6
00016 DigitalOut RTLIHI(P1_15);   // rt links hinbten D7        
00017 DigitalOut GEREHI(P1_16);   //ge rechts hinten D8
00018 DigitalOut RTREHI(P1_17);   //rt  rechts hinten D9
00019 
00020 DigitalOut ledD10(P1_18);
00021 DigitalOut ledD11(P2_16);
00022 DigitalOut ledD12(P1_20);
00023 DigitalOut ledD13(P1_21);
00024 // LDR 
00025 AnalogIn LDR(P0_14);
00026 // RGB LED
00027 DigitalOut RGB(P1_22);
00028 // Motor Steuerung                    Schaltung Pg 2
00029 DigitalOut MG1_EN(P2_16);// NUR DIGITAL ohne PWM ! ! !
00030 DigitalOut MG1_F(P2_15);
00031 DigitalOut MG1_R(P2_14);
00032 DigitalOut MG2_EN(P2_19);
00033 DigitalOut MG2_F(P2_20);
00034 DigitalOut MG2_R(P2_21);
00035 //ULTRASCHALL ABSTANDSMESSER
00036 DigitalOut TRIG(P2_22);
00037 DigitalIn ECHO(P2_23);
00038 // Definition der Taster **************** Schaltplan Pg5
00039 DigitalIn  TA1(P1_23); //TA1
00040 DigitalIn  TA2(P1_24); //
00041 DigitalIn  TA3(P1_25); //
00042 DigitalIn  TA4(P1_26); // 
00043 DigitalIn  TA5(P1_27); //
00044 DigitalIn  TA6(P1_28); //
00045 DigitalIn  TA7(P1_30); //
00046 DigitalIn  TA8(P1_31); // 
00047 // INCREMENTGEBER  *********************** Schaltplan Pg 6
00048 DigitalOut EN_INCR (P2_2);  //Incrementgeber Enable
00049 DigitalIn INCR_L1 (P2_6);
00050 DigitalIn INCR_L2 (P2_7); 
00051 DigitalIn INCR_R1 (P2_8);  
00052 DigitalIn INCR_R2 (P2_9); 
00053 // LINE SENSOR *************************** Schaltplan Pg 7
00054 DigitalOut EN_Line (P2_5); //Enable LINE Sensor
00055 DigitalIn ISO1 (P1_9);  // Statt ANALOG hier DIGITAL
00056 DigitalIn ISO2 (P0_23); // nur für einfachen TEST!
00057 DigitalIn ISO3 (P0_16);
00058 DigitalIn ISO4 (P0_15);
00059 DigitalIn ISO5 (P1_3);
00060 // Blue LED ****************************** Schaltplan Pg 8
00061 DigitalOut LedBl (P1_5);
00062 
00063 // WLAN fehlt
00064 // RS232 via FT232Modul fehlt
00065 
00066 //********************************************************
00067 // Konstante 
00068 int t;    //time const
00069 int t2;
00070 int b;    //LedTest                  
00071 int a;    //LedTest    
00072 int j;   
00073 
00074 void LedTest();                  // Testet alle LED des B16 **********
00075 void vor();
00076 void ret();   // Rechts Turn 90^
00077 void retu();
00078 void litu();
00079 void lituf();
00080 void retuf();
00081 void TasterTest();
00082 void LDRTest();                  // Test für den LDR
00083 
00084 void RGBTest();                  // RGB Test ruft writeled und writebit 
00085 void writeled(uint32_t leddata); // schreibt 3 Byte aufs LED 
00086 void writeledbit(char wert);     // schreibet 1 BIT  aufs LED
00087 //ab hier 12V und 6V Tests
00088 void BlueTest();                 // BLUE LEDS 
00089 void MotorTest();                // Motor Test 
00090 void testOK();                   // alle Led blinken 3 mal
00091 void LineTest();                 // Line Test 
00092 void tu90r();
00093 // Konstante 
00094 int T1,T2,T3,T4,T5,T6,T7,T8;         
00095 // *******************   HAUPTPROGRAMM *******************
00096 int main() {
00097     t=200;           // 0,2 sec
00098     t2=500;
00099     Von=1;
00100     while(t)
00101     {
00102       WSLI=WSRE=GELIVO=GEREVO=GEREHI=GELIHI=RTREHI=RTLIHI=1;
00103       ledD10=ledD11=ledD12=ledD13=1;
00104       BlueTest();
00105       LedTest();
00106       b=0;
00107       while (b<2)
00108       { vor();
00109         tu90r();
00110         vor();
00111         tu90r();
00112         vor();
00113         tu90r();
00114         vor();
00115         tu90r();
00116         b++;
00117      }    
00118       
00119     retu();
00120     lituf();
00121     retuf();
00122     vor();
00123     tu90r();
00124     vor();
00125     tu90r();
00126     vor();
00127     tu90r();
00128     vor();
00129     }
00130  
00131     
00132 }    
00133 
00134 //********************  Unterprogramme *******************
00135 void tu90r()
00136 {
00137   Von=1;
00138   WSLI=WSRE=0;
00139   MG1_F=1;
00140   MG1_EN=1;
00141   GEREVO=GEREHI=0;
00142   wait (0.3);
00143   WSLI=WSRE=1;
00144   MG1_F = MG1_EN = 0;   
00145   GEREVO=GEREHI=1;  
00146 }    
00147 
00148 
00149 void vor()
00150 { a=0;
00151   while (a<3)
00152   { Von=1;
00153     WSLI=WSRE=0;
00154     MG1_F=MG2_F=1;
00155     MG1_EN=MG2_EN=1;
00156     wait_ms(t);
00157     WSLI=WSRE=1;
00158     MG1_F=MG2_F=0;
00159     a++;
00160   }  
00161 }  
00162   
00163 void ret()  
00164  { a=0;
00165   while (a<3)
00166   { Von=1;
00167     WSLI=WSRE=0;
00168     RTLIHI=RTREHI=0;
00169     MG1_R=MG2_R=1;
00170     MG1_EN=MG2_EN=1;
00171     wait_ms(t);
00172     WSLI=WSRE=1;
00173     MG1_R=MG2_R=0;
00174     RTLIHI=RTREHI=1;
00175     a++;
00176   }  
00177 }   
00178 
00179 void retu()
00180 {
00181   a=0;
00182   while (a<5)
00183   { Von=1;
00184     WSLI=WSRE=0;
00185     GEREVO=GEREHI=0;
00186     MG1_R=1;
00187     MG1_EN=1;
00188     wait (0.3);
00189     GEREVO=GEREHI=1;
00190     wait (0.3);
00191     a++;
00192   }  
00193     WSLI=WSRE=1;
00194     MG1_R=MG2_R=0;
00195     
00196 }    
00197 
00198 void lituf()
00199 {
00200   a=0;
00201   while (a<6)
00202   { Von=1;
00203     WSLI=WSRE=GELIVO=GEREVO=GEREHI=GELIHI=RTREHI=RTLIHI=0;
00204     ledD10=ledD11=ledD12=ledD13=0;
00205     MG1_F=1;
00206     MG2_R=1;
00207     MG1_EN=MG2_EN=1;
00208     wait (0.3);
00209     WSLI=WSRE=GELIVO=GEREVO=GEREHI=GELIHI=RTREHI=RTLIHI=1;
00210     ledD10=ledD11=ledD12=ledD13=1;
00211     wait (0.3);
00212     a++;
00213   }  
00214     WSLI=WSRE=1;
00215     MG1_F=MG2_R=0;
00216     MG1_EN=MG2_EN=0;
00217 }    
00218 
00219 
00220 void retuf()
00221 {
00222   a=0;
00223   while (a<6)
00224   { Von=1;
00225     WSLI=WSRE=GELIVO=GEREVO=GEREHI=GELIHI=RTREHI=RTLIHI=0;
00226     ledD10=ledD11=ledD12=ledD13=0;
00227     
00228     MG1_R=1;
00229     MG2_F=1;
00230     MG1_EN=MG2_EN=1;
00231     wait (0.3);
00232     WSLI=WSRE=GELIVO=GEREVO=GEREHI=GELIHI=RTREHI=RTLIHI=1;
00233     ledD10=ledD11=ledD12=ledD13=1;
00234     wait (0.3);
00235     a++;
00236   }  
00237     WSLI=WSRE=1;
00238     MG1_R=MG2_F=0;
00239     MG1_EN=MG2_EN=0;
00240 }    
00241 
00242 void LedTest()  // Testet alle LED des B16 ***************
00243  {
00244   a=0;
00245   while(a<5) 
00246    {
00247      GELIVO=0;
00248       wait_ms(t);
00249      GELIVO=1;
00250      GEREVO=0;
00251       wait_ms (t);
00252      GEREVO=1;
00253      GEREHI=0;
00254       wait_ms (t);
00255      GEREHI=1;
00256      GELIHI=0;
00257       wait_ms (t);
00258      GELIHI=1;
00259      a++;
00260    }     
00261    a=0;
00262    while (a<4)
00263    {
00264      WSLI=WSRE=RTLIHI=RTREHI=0;
00265       wait (0.3);
00266      WSLI=WSRE=RTLIHI=RTREHI=1;
00267       wait (0.3);
00268      a++;
00269     } 
00270     a=0; 
00271    
00272    while (a<4)
00273    {
00274      WSLI=0;
00275      wait (0.25);
00276      WSLI=1;
00277      WSRE=0;
00278      wait (0.25);
00279      WSRE=1;
00280      a++;   
00281    }     
00282  }    
00283 // ********************* BLAUE LED TESTEN **************
00284 void BlueTest() // BLAUE LED TESTEN *****   + 5V  *****
00285 {   a=0;
00286     while (a<4)
00287     {
00288        LedBl=1;
00289        wait_ms(t);
00290        LedBl=0;
00291        wait_ms(t);
00292        a=a++;
00293     }    
00294     LedBl=1;
00295 }
00296 
00297 // ********************  Motor Test **********************
00298 void MotorTest()   // MOTOR TEST *******   + 12 V  *****
00299 {
00300    a=0;
00301    MG1_EN=MG2_EN=1;
00302    Von=1;
00303    while (a<5)
00304    {
00305      MG1_F=MG2_F=1;  //vor fahren
00306      wait (1.5);
00307      MG1_F=MG2_F=0;
00308      MG1_R=MG2_R=1;   //retour fahren
00309      wait (1);
00310      MG1_R=MG2_R=0;
00311      a++;     
00312    }
00313    MG1_EN=MG2_EN=0;
00314    Von=0;    
00315 }    
00316 
00317       
00318 // ****************   TASTER TEST   ********************
00319 
00320 // ****************************  RGB TEST ********************************
00321 void RGBTest()         
00322 {
00323     writeled(0x000000);      // setze alle LED AUS !
00324     writeled(0x000000);
00325     writeled(0x000000);      // 
00326     a=0;
00327     while(a<5)              // geht 5 mal durch die Schleife !
00328     {  
00329        writeled(0xFF0000);      // BLAU!
00330        wait(1);
00331        writeled(0x00FF00);       // ROT !
00332        wait (1);
00333        writeled(0x0000FF);       // GRÜN !
00334        wait(1);
00335        writeled(0x000000);       // Finster
00336        wait(1);
00337        wait(1); 
00338        a=a++;  
00339     }
00340 }
00341 
00342 void writeled(uint32_t leddata)
00343 {      int i;
00344        for(i=0;i<24;i++)
00345        {
00346       //  writeledbit(((leddata>>i)&0x000001)==1); //lt jan
00347           writeledbit(((leddata>>i)&0x000001)==0x000001);
00348        }
00349 }
00350 void writeledbit(char wert)  // Funktion schreibe bit
00351 {
00352     int j;
00353     if(wert)
00354     {   // kritische Zeiteinstellung !
00355         // hab einiges versucht -> leuchten nicht konstant !
00356         // bringen verschiedene Farben  nicht wiederholbares Ergebnis!
00357         RGB=1;            // schreibe eine 1
00358         for(j=0;j<5;j++)    //war 5 
00359         {
00360         __nop();    
00361         }
00362         RGB=0;
00363         for(j=0;j<1;j++)    // war 1
00364         {
00365         __nop();   
00366         }
00367     }
00368     else
00369     {
00370         RGB=1;            // schreiben eine 0
00371         for(j=0;j<1;j++)    // war 1
00372           {
00373           __nop();    
00374           }
00375         RGB=0;
00376         for(j=0;j<5;j++)    // war 5
00377           {
00378           __nop();   
00379           }
00380     }           
00381 }
00382 // ****************** LINE TEST **********************
00383 
00384 /*
00385 void LineTest()
00386 {
00387     Von=1;
00388     EN_Line=1;
00389     T1=T2=T3=T4=T5=T6=T7=T8=0;
00390     a=0;
00391     while(a<4)
00392      {
00393         if (ISO1==1)
00394          { ledD2=1;         
00395            T1=1; 
00396          }  
00397          else ledD2=0;
00398         if (ISO2==1)
00399          { ledD1=1;         
00400            T2=1; 
00401          }  
00402          else ledD1=0;
00403         if (ISO3==1)
00404          { ledD4=1;         
00405            T3=1;
00406          }  
00407          else ledD4=0;
00408         if (ISO4==1)
00409          { ledD5=1;         
00410            T4=1;  
00411          }  
00412          else ledD5=0;
00413         if (ISO5==1)
00414          { ledD6=1;
00415            ledD8=1;          
00416            T5=1;
00417          }  
00418          else 
00419          { ledD6=0; 
00420            ledD8=0;
00421          }
00422          if (T1==T2==T3==T4==T5==1)
00423          {
00424           a++;
00425           T1=T2=T3=T4=T5=T6=T7=T8=0;   
00426          }    
00427                   
00428      }
00429      testOK(); 
00430 }    
00431 */
00432 
00433 // ********************   ENDE  ***********************