Blinker
Dependencies: TextLCD mbed MMA8451Q
Blinker.cpp
- Committer:
- Berrng
- Date:
- 2014-06-20
- Revision:
- 7:c1d05f2830fb
- Parent:
- 6:ee51f453cc7c
- Child:
- 8:6a4e86d75a00
File content as of revision 7:c1d05f2830fb:
//Multifunktionsblinker //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 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); // Tster zum Rückstelen der Blinker AnalogIn TasterL(PTB2); // Taster für Blinker links AnalogIn TasterR(PTB1); // Taster für Blinker rechts int main() { anfang: int x = 0; //Zählvariable für Blinker-Schleife float z = 0.4; myLED_G= 1; while(1) { if (TasterR > 0.8) { BlinkerR= 1; myLED_G= 0; wait(z); BlinkerR= 0; myLED_G= 1; wait(z); if (TasterR > 0.8) { SchleifeR: BlinkerR= 1; myLED_G= 0; wait(z); BlinkerR= 0; myLED_G= 1; wait(z); if (TasterS > 0.8) //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; } } } #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]. // 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