Testet BERTL17 zuerst die LED's dann nach Tasterdruck jeweils die dazugehörigen LED

Dependencies:   mbed

Revision:
4:a33d2e24765a
Parent:
3:bff0f9cba269
Child:
5:8d00369f47e9
diff -r bff0f9cba269 -r a33d2e24765a main.cpp
--- a/main.cpp	Sun May 31 16:31:30 2015 +0000
+++ b/main.cpp	Thu Apr 21 12:14:03 2016 +0000
@@ -1,84 +1,222 @@
 /***********************************
-name:   BERTL15_Test1
+name:   BERTL16_Test1 8.1.2016
 author: Enenkel 
-description:  TEST1 
-    D1_D4 Lauflicht
+description:  TEST1  testet die 3,3V und 3,7V 
+ -> Die 12 LEDs blinken 2 mal der Reihe nach auf
+ -> Dann blinken alle LED 2x
+ -> Danach blinken die 2 bleuen LED mehrfach
+ -> Dann leuchtet bei jedem Tastendruck eine oder mehrere LED auf
+ -> UND beim Abdunkeln des LDR leuchten die LED D10 - D13 auf
     
 ***********************************/
 #include "mbed.h"
-
-// 3,3 und 3,7V Schiene
-DigitalOut LedD10 (P1_8);      // LED D10 bis D13 IO Definieren
-DigitalOut LedD11 (P1_9);
-DigitalOut LedD12 (P1_10);
-DigitalOut LedD13 (P1_11);
+   
+// Definition der LEDS als AUSGANGE
+DigitalOut LedD1 (P1_10);      
+DigitalOut LedD2 (P1_11);
+DigitalOut LedD4 (P1_12);
+DigitalOut LedD5 (P1_13);
+DigitalOut LedD6 (P1_14);      
+DigitalOut LedD7 (P1_15);
+DigitalOut LedD8 (P1_16);
+DigitalOut LedD9 (P1_17);
+DigitalOut LedD10 (P1_18);     
+DigitalOut LedD11 (P1_19);
+DigitalOut LedD12 (P1_20);
+DigitalOut LedD13 (P1_21);
 
-I2C i2c(p28, p27);             // die Adressen des I2C Busses am uP 
-                               // p28 -> SDA
-                               // p27 -> SCL 
+//Definition der Schalter als Eingange
+DigitalIn TA1 (P1_23);      
+DigitalIn TA2 (P1_24);
+DigitalIn TA3 (P1_25);
+DigitalIn TA4 (P1_26);
+DigitalIn TA5 (P1_27);      
+DigitalIn TA6 (P1_28);
+DigitalIn TA7 (P1_30);
+DigitalIn TA8 (P1_31);
 
-// 5V Schiene & Motor Spannung
-DigitalOut Von (P1_2);          // SPANNUNG 10V & 5V 
-double counter1;
+void lamptest();
+void tastertest();
+void ldrtest();                      // testet die LDR
+     AnalogIn LDR (P0_14);           // Adresse der LDR
+void blueledtest();                  // Tested die blauen LED
+     DigitalOut BlueLed (P1_5);
+void RGBtest();                      // Derzeit nicht dabei   
+     DigitalOut RGB (P1_22);         // Adresse RGB LED
+
+
+// ************* Hauptprogramm ************************
 int a;
+int b;
+int main() {
+    lamptest();    // Alle LED einmal blinken 
+    blueledtest(); // Tested die blauen LED 
+    tastertest();  // läuft ewig weiter ! ! 
+
+   
+  
+  
+  
+   }
 
-int main() {
-    Von=0;                // muss 0 sein, sonst leuchtet RGB !!!
-    a=1;
-    char btn = 0;
-    //     ****  Config PCA9555 I0 as output *******
-    i2c.start();
-       i2c.write(0x40);   // Adresse des PCA9555 = 40 
-                          // das letzte Bit = 0 -> schreiben  0040 0000
-       i2c.write(0x06);   // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555
-       i2c.write(0x00);   // Schalte alle Pins des Ports als OUTPUT
-    i2c.stop();    
+// UNTEPROGRAMME ******************************************************
+   void lamptest() {  //*****************************************************
+      a=0;
+      while (a<2)  {     // 2 Mal durch die Schleife laufen  
+                         // Alle LED einmal blinken  (2 Mal durchlaufen
+         LedD1=1;            // LED D1 ON  
+         wait (0.5);         // 0.5 sec warten  
+         LedD1=0;            // LED D1 AUS
+         LedD2=1;            // LED D2 EIN   
+         wait (0.5);
+         LedD2=0;
+         LedD4=1;
+         wait (0.5);
+         LedD4=0;
+         LedD5=1;
+         wait (0.5);
+         LedD5=0;
+         LedD6=1;
+         wait (0.5);
+         LedD6=0;
+         LedD7=1;
+         wait (0.5);
+         LedD7=0;
+         LedD8=1;
+         wait (0.5);
+         LedD8=0;
+         LedD9=1;
+         wait (0.5);
+         LedD9=0;
+         LedD10=1;
+         wait (0.5);
+         LedD10=0;
+         LedD11=1;
+         wait (0.5);
+         LedD11=0;
+         LedD12=1;
+         wait (0.5);
+         LedD12=0;
+         LedD13=1;
+         wait (0.5);
+         LedD13=0;
+         wait (0.5);
+
+         b=0;
+         while (b<2)   // Alle LED blinken  2 Mal
+            {      
+            LedD1=LedD2=LedD4=LedD5=LedD6=LedD7=LedD8=LedD9=LedD10=LedD11=LedD12=LedD13=1;  
+            wait (0.5);
+            LedD1=LedD2=LedD4=LedD5=LedD6=LedD7=LedD8=LedD9=LedD10=LedD11=LedD12=LedD13=0;
+            wait (0.5);
+            b=b++;
+            }
+         a=a++;                 // a = a+1 -> in C besser a++
+      }
+    } 
  
-   // D10-D13 Lauflicht
-   a=0;
-   while (a<4)            // 4 Mal durch die Schleife laufen   
+ // ***************************************************************************
+ void tastertest() { //Taster Test     Bei Drücken einer Taste leuchtet die LED !
+    while(1)        // läuft ewig weiter
+    {
+      if (TA1 == 1) {
+           LedD10=LedD11=LedD12=LedD13=1;
+         }
+         else {   
+           LedD10=LedD11=LedD12=LedD13=0;   
+         }  
+      if (TA2 == 1) {
+           LedD4=1;
+         }
+         else {   
+           LedD4=0;   
+         }  
+       if (TA3 == 1) {
+           LedD1=1;
+         }
+         else {   
+           LedD1=0;   
+         }  
+       if (TA4 == 1) {
+           LedD6=LedD8=1;
+         }
+         else {   
+           LedD6=LedD8=0;   
+         }  
+       if (TA5 == 1) {
+           LedD7=1;
+         }
+         else {   
+           LedD7=0;   
+         }  
+       if (TA6 == 1) {
+           LedD9=1;
+         }
+         else {   
+           LedD9=0;   
+         }  
+       if (TA7 == 1) {
+           LedD5=1;
+         }
+         else {   
+           LedD5=0;   
+         }  
+       if (TA8 == 1) {
+           LedD2=1;
+         }
+         else {   
+           LedD2=0;   
+         } 
+        // 
+        ldrtest();
+        wait (0.01);  
+                         
+    }   
+  }    
+//*******************************************************************  
+void blueledtest()
+ {
+  a=0;
+  while (a<10)   
      {
-     LedD10=1;            // LED D10 ON  
-     wait (0.5);          // 0.5 sec warten  
-     LedD10=0;            // LED D10 AUS
-     LedD11=1;            // LED D11 EIN   
-     wait (0.5);
-     LedD11=0;
-     LedD12=1;
-     wait (0.5);
-     LedD12=0;
-     LedD13=1;
-     wait (0.5);
-     LedD13=!LedD13;       // ! Invertieren 1 wird 0  und 0 wird 1 
-     a=a++;                // a = a+1 -> in C besser a++
-     }
-   
+       BlueLed=1;
+       wait (0.25);
+       BlueLed=0;
+       wait (0.25);
+       a++;
+     }    
+     
+     
+ }     
+/*************** LDR TEST *******************************/        
+void ldrtest()
+        {
+        if(LDR <= 0.2) {
+           LedD10=1;
+           }
+           else
+           { 
+           LedD10=0;
+           }
+        
+        if(LDR <= 0.07)  {     // Ab einer Lichtstärke von 0.15 oder kleiner
+           LedD11 = 1; 
+           }       // Ist die LED D1 EIN
+           else {
+           LedD11 = 0;
+           }
+        if (LDR <= 0.1) {
+           LedD13=1;
+           }
+           else {
+           LedD13=0;
+           }
+        if (LDR <= 0.15) {
+           LedD12=1;
+           }
+           else {
+           LedD12=0;
+           }
+         }
 
-    //Taster und LED Test
-    while(1) {
-        counter1=1;
-        while(counter1<5000) {
-            // Einlesen der Taster und speichern unter btn
-            i2c.start();
-                                    /* Das letzte Bit der Adresse entscheidet 
-                                      ob geschrieben oder gelesen wird. 
-                                      0 => schreiben;   1 => lesen  */
-                i2c.write(0x40);    //Adresse & schreiben   0100 0000 
-                i2c.write(0x01);    //aktivate Port 1        
-       
-            i2c.start();
-                i2c.write(0x41);    // Adresse & LESEN    0100 0001  
-                btn = i2c.read(0);  // Einlesen des Ports 1 und speichern unter btn
-            i2c.stop();
-        
-            // Schreiben auf Port 0 und damit auf die LED's
-            i2c.start();
-                i2c.write(0x40);  // Adresse & schreiben
-                i2c.write(0x02);  // 
-                i2c.write(~btn);  // schriebn auf Port 0 den INVERSEN Wert von btn
-            i2c.stop();
-            
-            counter1=counter1++;
-        }
-   } 
-   }
\ No newline at end of file
+/********************** ENDE ******************************/
\ No newline at end of file