Blinker

Dependencies:   TextLCD mbed MMA8451Q

Revision:
11:f3de201aace6
Parent:
10:31d4d8104813
Child:
12:601b595e68a0
--- a/Blinker.cpp	Tue Jun 24 09:48:22 2014 +0000
+++ b/Blinker.cpp	Tue Jun 24 15:20:51 2014 +0000
@@ -11,31 +11,31 @@
 DigitalOut myLED_R(PTB18);                                              // rote LED auf dem Board
 //DigitalOut BlinkerL(PTE0);                                              // Digitaler Ausgang für die Blinker links
 //DigitalOut BlinkerR(PTE1);                                              // Digitaler Ausgang für die Blinker rechts
-//AnalogIn TasterS(PTB3);                                               // Taster zum Rückstelen der Blinker
-//AnalogIn TasterL(PTB2);                                               // Taster für Blinker links
-//AnalogIn TasterR(PTB1);                                               // Taster für Blinker rechts
+
 AnalogIn KEYS(PTB0);                                                    //Analog In um die Spannung an PTB0 zu bestimmen und die Buttons zu erkennen
 TextLCD lcd(PTA13, PTD5, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2);     //Konfiguration des LCD-Keypad-Schields mit Pins: rs, e, d4, d5, d6, d7
 
-#define NO_KEY      0                                                  //definiert die Keys des LCD Shields
+#define RIGHT_KEY   0
 #define UP_KEY      1
 #define DOWN_KEY    2
 #define LEFT_KEY    3
-#define RIGHT_KEY   4
-#define SELECT_KEY  5
+#define SELECT_KEY  4
+#define NO_KEY      5                                                  //definiert die Keys des LCD Shields
 
 //Funktions Prototypen
 void Programmwahl();
 int read_KEY();
 float z = 0.4;                                                          //Rythmus der Blinker
-int buttenState = 0;
+int buttonState = 0;
 
 void BlinkerL();
 //void BlinkerR();
 //void BlinkerW();
 
+
 int main()
 {
+                                         
     myLED_G= 1;
     myLED_R= 1;
     lcd.cls();
@@ -51,89 +51,71 @@
 {
     lcd.cls();
     lcd.locate(4,1);
-    lcd.printf("smartBIG");
+    lcd.printf("smartBIG");       
     while(1)
         {
-        buttenState = read_KEY();
-        if (buttenState == LEFT_KEY)
+        wait(0.05);                                     // Wichtig!!! Richtige Zuordnung der Buttons
+        buttonState = read_KEY();
+        if (buttonState == LEFT_KEY)
         {
             BlinkerL();
         }
     }
 }
 
-
+// Programm für die Ansteuerung der linken Blinker
 
 void BlinkerL()
 {
-    buttenState = 0;
+    buttonState = NO_KEY;
     lcd.cls();
     wait(z);
-    lcd.locate(1,0);
+    lcd.locate(0,0);
     lcd.printf("<--");
-    lcd.locate(0,1);
-    lcd.printf("Blinker Links");
+    lcd.locate(1,1);
+    lcd.printf("Blinker  Links");
+    buttonState = read_KEY();
     wait(z);
-    buttenState = read_KEY();
-
-        if (buttenState == LEFT_KEY)
+    
+        if (buttonState == LEFT_KEY)                // Einstieg Dauerblinker
+        {   while(1)
             {
-            SchleifeR:
-            lcd.cls();
-            wait(z);
-            lcd.locate(1,0);
-            lcd.printf("<--");
-            lcd.locate(0,1);
-            lcd.printf("Blinker Links");
-                        
-            if (buttenState == DOWN_KEY)                      //Abschaltbedingung
-                {Programmwahl();}
-            else {goto SchleifeR;}
-                    }
+                buttonState = NO_KEY;
+                lcd.cls();
+                wait(z);
+                lcd.locate(0,0);
+                lcd.printf("<--");
+                lcd.locate(2,1);
+                lcd.printf("Dauerblinker");
+                buttonState = read_KEY();
+                wait(z);
+                if (buttonState == DOWN_KEY)        // Abbruchbedingung Dauerblinker
+                { Programmwahl();}
+                //if (buttonState == UP_KEY)        // Einstieg Warnblinker
+                //{ BlinkerW();}
+            }   
+        }
         else                                        //Kompfortblinker
             {
-            char x = 5;
-            for (x=5; x>=1; x--)
+            char x = 3;
+            for (x=3; x>=1; x--)
             {
                 lcd.cls();
                 wait(z);
                 lcd.locate(15,0);
                 lcd.printf("%d%",x);
-                lcd.locate(1,0);
+                lcd.locate(0,0);
                 lcd.printf("<--");
                 lcd.locate(1,1);
                 lcd.printf("Komfortblinker");
                 wait(z);
             }
-            Programmwahl();
             }
+            Programmwahl();                                         // Zurück zur Programmwahl
             }
     
-    
 
     
-    
-    
-   /* 
-    
-    char x = 5;
-    for (x=5; x>=1; x--)
-        {
-            lcd.cls();
-            wait(z);
-            lcd.locate(15,0);
-            lcd.printf("%d%",x);
-            lcd.locate(1,0);
-            lcd.printf("<--");
-            lcd.locate(1,1);
-            lcd.printf("Komfortblinker");
-            wait(z);
-        }
-    Programmwahl();
-}
-
-*/
-
 
 int read_KEY()                                                     //Bestimmt, welche Taste gerade gedrückt wird
 {   
@@ -144,96 +126,11 @@
     if (adc_key_in > 65000)    {return NO_KEY;} 
     if (adc_key_in < 50)       {return RIGHT_KEY;}
     //if (adc_key_in < 790)      {return SELECT_KEY;} 
-    if (adc_key_in < 15500)    {return UP_KEY;}
-    if (adc_key_in < 34600)    {return DOWN_KEY;}
-    if (adc_key_in < 54000)    {return LEFT_KEY;}
+    if (adc_key_in < 15000)    {return UP_KEY;}
+    if (adc_key_in < 35000)    {return DOWN_KEY;}
+    if (adc_key_in < 53000)    {return LEFT_KEY;}
       
     return NO_KEY;  //when no value readable, also return NO_KEY...
 }
 
-
-
-/*
-
-int main()
-{  
-    char x = 5;
-    while(1)
-    {
-        for (x=5; x>=0; x--){
-              lcd.cls();
-              wait(0.6);
-              lcd.locate(1,0);
-              lcd.printf("%d%",x);
-              lcd.locate(1,1);
-              lcd.printf("Komfortblinker");
-              wait(0.6);
-    }}
-myLED_G= 1;    
-anfang: 
-//int x = 0;                                                              //Zählvariable für Blinker-Schleife 
-float z = 0.4;
- 
-
-while(1)
-{
-if (TasterR > 0.6)
-    {  
-
-        BlinkerR= 1;
-        myLED_G= 0;
-        wait(z);
-        BlinkerR= 0;
-        myLED_G= 1;
-        wait(z);
-        if (TasterR > 0.6)
-            {
-            SchleifeR:
-            BlinkerR= 1;
-            myLED_G= 0;
-            wait(z);
-            BlinkerR= 0;
-            myLED_G= 1;
-            wait(z);
-            if (TasterS > 0.6)                      //Abschaltbedingung
-                {goto anfang;}
-            else { 
-                    goto SchleifeR; }
-                    }
-        else                                        //Kompfortblinker
-            {for (x=0; x<=2; x++)
-                    {BlinkerR= 1;
-                    myLED_G= 0;
-                    wait(z);
-                    BlinkerR= 0;
-                    myLED_G= 1;
-                    wait(z);
-            }}
-    
-    
-    }
-else
-    { 
-        goto anfang;
-    }
-}
-}
-
-
-int read_LCD_KEYS()                                                     //Bestimmt, welche Taste gerade gedrückt wird
-{   
-    int adc_key_in = 0;
-    adc_key_in = KEYS.read_u16 ();                                      // read the value from the sensor //Read the input voltage, represented as an unsigned short in the range [0x0, 0xFFFF]. 
-                                                                        // watch approching values for pushbutton and set table below
-                                                                        // add approx 500 for safety
-    if (adc_key_in > 65000)    {return NO_KEY;} 
-    if (adc_key_in < 50)       {return RIGHT_KEY;}
-    //if (adc_key_in < 790)      {return SELECT_KEY;} 
-    if (adc_key_in < 15500)    {return UP_KEY;}
-    if (adc_key_in < 34600)    {return DOWN_KEY;}
-    if (adc_key_in < 54000)    {return LEFT_KEY;}
-      
-    return NO_KEY;  //when no value readable, also return NO_KEY... 
-} 
-*/
 //Ende
\ No newline at end of file