Blinker
Dependencies: TextLCD mbed MMA8451Q
Diff: Blinker.cpp
- Revision:
- 10:31d4d8104813
- Parent:
- 9:9ff473e9dfea
- Child:
- 11:f3de201aace6
--- a/Blinker.cpp Mon Jun 23 11:17:06 2014 +0000 +++ b/Blinker.cpp Tue Jun 24 09:48:22 2014 +0000 @@ -2,23 +2,161 @@ //Hardware: Freescale FRDM KL25Z & SaintSmart LCD Keypad Shield //Copyright: Andre Ehwein, Marcel Berrang, Daniel Knopp -#include "mbed.h" //common library für mbed -#include "TextLCD.h" //library für den LCD Shield -#include "TSISensor.h" //library für den TSi Sensor Idee: Helligkeit der Blinker LEDs einstellen -//#include "MMA8451Q.h" //library für den Beschleunigungssensor +#include "mbed.h" //common library für mbed +#include "TextLCD.h" //library für den LCD Shield +#include "TSISensor.h" //library für den TSi Sensor Idee: Helligkeit der Blinker LEDs einstellen + +DigitalOut myLED_G(PTB19); // grüne LED auf dem Board +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 -DigitalOut myLED_G(PTB19); //grüne LED Idee: stellt die grünen blinkenden Pfeile im Auto da -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 -TextLCD lcd(PTA13, PTD5, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2); +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 UP_KEY 1 +#define DOWN_KEY 2 +#define LEFT_KEY 3 +#define RIGHT_KEY 4 +#define SELECT_KEY 5 +//Funktions Prototypen +void Programmwahl(); +int read_KEY(); +float z = 0.4; //Rythmus der Blinker +int buttenState = 0; + +void BlinkerL(); +//void BlinkerR(); +//void BlinkerW(); int main() { + myLED_G= 1; + myLED_R= 1; + lcd.cls(); + lcd.locate(4,1); + lcd.printf("smartBIG"); + + Programmwahl(); +} + + + +void Programmwahl() +{ + lcd.cls(); + lcd.locate(4,1); + lcd.printf("smartBIG"); + while(1) + { + buttenState = read_KEY(); + if (buttenState == LEFT_KEY) + { + BlinkerL(); + } + } +} + + + +void BlinkerL() +{ + buttenState = 0; + lcd.cls(); + wait(z); + lcd.locate(1,0); + lcd.printf("<--"); + lcd.locate(0,1); + lcd.printf("Blinker Links"); + wait(z); + buttenState = read_KEY(); + + if (buttenState == LEFT_KEY) + { + 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;} + } + else //Kompfortblinker + { + 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(); + } + } + + + + + + + /* + + 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 +{ + 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... +} + + + +/* + +int main() +{ char x = 5; while(1) { @@ -82,17 +220,7 @@ } - -#define NO_KEY 0 //definiert die Keys des LCD Shields -#define UP_KEY 1 -#define DOWN_KEY 2 -#define LEFT_KEY 3 -#define RIGHT_KEY 4 -#define SELECT_KEY 5 - -//TextLCD lcd(PTA13, PTD5, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2); //Konfiguration für das LCD Shield int read_LCD_KEYS() //Bestimmt, welche Taste gerade gedrückt wird -// lcd.cls(); { 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]. @@ -107,4 +235,5 @@ return NO_KEY; //when no value readable, also return NO_KEY... } +*/ //Ende \ No newline at end of file