Testet BERTL17 zuerst die LED's dann nach Tasterdruck jeweils die dazugehörigen LED
Dependencies: mbed
Diff: main.cpp
- 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