Testet die Funktionen des MO Boards der HTL BULME
Fork of _HIMBED_TEST1 by
main.cpp@2:f799412fe395, 2016-01-13 (annotated)
- Committer:
- Enenkel
- Date:
- Wed Jan 13 08:25:45 2016 +0000
- Revision:
- 2:f799412fe395
- Parent:
- 1:d6e5f9c188d3
MO_TEST_Software
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Enenkel | 2:f799412fe395 | 1 | // HIMBED _TEST1_V2 |
Enenkel | 2:f799412fe395 | 2 | // Diese Software testet die verschiedenen Funktionen des M0 Boards |
Enenkel | 2:f799412fe395 | 3 | // BULME Graz, by Enenkel 26.12.2015 |
Enenkel | 2:f799412fe395 | 4 | /* zuerst __ RGB TEST; dann ___ D1 bis D13 2x getestet |
Enenkel | 2:f799412fe395 | 5 | __ Taster Testen ___ LDR Testen |
Enenkel | 2:f799412fe395 | 6 | __ FTDI TEST (mit RES) ___ POTI Test |
Enenkel | 2:f799412fe395 | 7 | __ TEMP Test --- fehlt nur noch UHR und RAM */ |
Enenkel | 1:d6e5f9c188d3 | 8 | |
Enenkel | 0:7bf2f1754883 | 9 | #include "mbed.h" |
Enenkel | 2:f799412fe395 | 10 | #include "LM75B.h" |
Enenkel | 1:d6e5f9c188d3 | 11 | // ******** Definitionen ********** |
Enenkel | 1:d6e5f9c188d3 | 12 | Serial pc(USBTX, USBRX); |
Enenkel | 0:7bf2f1754883 | 13 | |
Enenkel | 0:7bf2f1754883 | 14 | // Definition der Taster (Switches) |
Enenkel | 1:d6e5f9c188d3 | 15 | DigitalIn sw1(P0_10); //SW1 |
Enenkel | 1:d6e5f9c188d3 | 16 | DigitalIn sw2(P0_15); //SW2 -> sein IO Pin ist laut Schaltplan der P0_15 |
Enenkel | 1:d6e5f9c188d3 | 17 | DigitalIn sw3(P0_23); //SW3 |
Enenkel | 1:d6e5f9c188d3 | 18 | DigitalIn sw4(P1_16); //SW4 |
Enenkel | 1:d6e5f9c188d3 | 19 | |
Enenkel | 1:d6e5f9c188d3 | 20 | // Definition der 12 LED's |
Enenkel | 1:d6e5f9c188d3 | 21 | DigitalOut ledD1(P1_8); |
Enenkel | 1:d6e5f9c188d3 | 22 | DigitalOut ledD2(P1_9); |
Enenkel | 1:d6e5f9c188d3 | 23 | DigitalOut ledD3(P1_10); |
Enenkel | 1:d6e5f9c188d3 | 24 | DigitalOut ledD4(P1_11); |
Enenkel | 1:d6e5f9c188d3 | 25 | DigitalOut ledD13(P1_0); |
Enenkel | 1:d6e5f9c188d3 | 26 | DigitalOut ledD14(P1_1); |
Enenkel | 1:d6e5f9c188d3 | 27 | DigitalOut ledD15(P1_3); |
Enenkel | 1:d6e5f9c188d3 | 28 | DigitalOut ledD16(P1_4); |
Enenkel | 1:d6e5f9c188d3 | 29 | DigitalOut ledD17(P1_6); |
Enenkel | 1:d6e5f9c188d3 | 30 | DigitalOut ledD18(P1_7); |
Enenkel | 1:d6e5f9c188d3 | 31 | DigitalOut ledD19(P1_12); |
Enenkel | 1:d6e5f9c188d3 | 32 | DigitalOut ledD20(P1_13); |
Enenkel | 1:d6e5f9c188d3 | 33 | |
Enenkel | 1:d6e5f9c188d3 | 34 | // RGB LED |
Enenkel | 1:d6e5f9c188d3 | 35 | DigitalOut ledGR(P0_9); // grüne LED wenn es anders ist bitte mir melden ! ! ! |
Enenkel | 1:d6e5f9c188d3 | 36 | DigitalOut ledBL(P1_15); // blaue LED |
Enenkel | 1:d6e5f9c188d3 | 37 | DigitalOut ledRT(P0_21); // rote LED |
Enenkel | 1:d6e5f9c188d3 | 38 | // LDR Input |
Enenkel | 1:d6e5f9c188d3 | 39 | AnalogIn LDR(P0_12); // Analoges einlesen des LDR |
Enenkel | 2:f799412fe395 | 40 | AnalogIn POTI (P0_11); // Analog in des POTI |
Enenkel | 2:f799412fe395 | 41 | //Create an LM75B object at the default address (ADDRESS_0) |
Enenkel | 2:f799412fe395 | 42 | LM75B sensor(p28, p27); //i²C Sensor Leitungen |
Enenkel | 2:f799412fe395 | 43 | |
Enenkel | 2:f799412fe395 | 44 | int b; // Wert für POTI |
Enenkel | 2:f799412fe395 | 45 | int a; |
Enenkel | 0:7bf2f1754883 | 46 | |
Enenkel | 0:7bf2f1754883 | 47 | |
Enenkel | 2:f799412fe395 | 48 | // ********** Hauptprogramm ************** |
Enenkel | 1:d6e5f9c188d3 | 49 | int main() |
Enenkel | 1:d6e5f9c188d3 | 50 | { |
Enenkel | 2:f799412fe395 | 51 | // char readChar = 0; |
Enenkel | 2:f799412fe395 | 52 | pc.printf("Welcome to HIMBED TEST V2 \n\r"); |
Enenkel | 2:f799412fe395 | 53 | wait (2); |
Enenkel | 1:d6e5f9c188d3 | 54 | |
Enenkel | 2:f799412fe395 | 55 | /******************** RGB & LED TEST *********************/ |
Enenkel | 2:f799412fe395 | 56 | /***********************************************************/ |
Enenkel | 2:f799412fe395 | 57 | pc.printf("RGB TEST WEIS - ROT GRUN BLAU\n\r"); |
Enenkel | 1:d6e5f9c188d3 | 58 | ledGR = 0; // Alle RGB LED EIN |
Enenkel | 1:d6e5f9c188d3 | 59 | ledBL = 0; |
Enenkel | 1:d6e5f9c188d3 | 60 | ledRT = 0; |
Enenkel | 1:d6e5f9c188d3 | 61 | wait(2); // Warte 1 sec. |
Enenkel | 1:d6e5f9c188d3 | 62 | |
Enenkel | 1:d6e5f9c188d3 | 63 | ledRT = 0; // Rote LED einschalten -> INVERSE LOGIG ! |
Enenkel | 1:d6e5f9c188d3 | 64 | ledGR = 1; // andere LED ausschalten |
Enenkel | 1:d6e5f9c188d3 | 65 | ledBL = 1; // (nicht nötig, da sie schon AUS sind !) |
Enenkel | 1:d6e5f9c188d3 | 66 | wait(1); |
Enenkel | 1:d6e5f9c188d3 | 67 | |
Enenkel | 1:d6e5f9c188d3 | 68 | ledRT = 1; // Alle LED ausschalten -> INVERSE LOGIG ! |
Enenkel | 1:d6e5f9c188d3 | 69 | ledGR = 0; // Grüne LED = EIN |
Enenkel | 1:d6e5f9c188d3 | 70 | ledBL = 1; |
Enenkel | 1:d6e5f9c188d3 | 71 | wait(1); |
Enenkel | 1:d6e5f9c188d3 | 72 | |
Enenkel | 1:d6e5f9c188d3 | 73 | ledRT = 1; // Alle LED ausschalten -> INVERSE LOGIG ! |
Enenkel | 1:d6e5f9c188d3 | 74 | ledGR = 1; |
Enenkel | 1:d6e5f9c188d3 | 75 | ledBL = 0; // Blaue LED = EIN |
Enenkel | 1:d6e5f9c188d3 | 76 | wait(1); |
Enenkel | 1:d6e5f9c188d3 | 77 | |
Enenkel | 1:d6e5f9c188d3 | 78 | ledRT = 1; // Alle LED ausschalten -> INVERSE LOGIG ! |
Enenkel | 1:d6e5f9c188d3 | 79 | ledGR = 1; |
Enenkel | 1:d6e5f9c188d3 | 80 | ledBL = 1; |
Enenkel | 1:d6e5f9c188d3 | 81 | wait(0.1); |
Enenkel | 1:d6e5f9c188d3 | 82 | /********************* 2x Lauflicht der LEDS *************/ |
Enenkel | 2:f799412fe395 | 83 | pc.printf("LAUFLICHT UBER 12 LED \n\r"); |
Enenkel | 1:d6e5f9c188d3 | 84 | a=1; |
Enenkel | 1:d6e5f9c188d3 | 85 | while (a<3) { |
Enenkel | 1:d6e5f9c188d3 | 86 | ledD1=1; |
Enenkel | 1:d6e5f9c188d3 | 87 | wait(0.5); |
Enenkel | 1:d6e5f9c188d3 | 88 | ledD1=0; |
Enenkel | 1:d6e5f9c188d3 | 89 | ledD2=1; |
Enenkel | 1:d6e5f9c188d3 | 90 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 91 | ledD2=0; |
Enenkel | 1:d6e5f9c188d3 | 92 | ledD3=1; |
Enenkel | 1:d6e5f9c188d3 | 93 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 94 | ledD3=0; |
Enenkel | 1:d6e5f9c188d3 | 95 | ledD4=1; |
Enenkel | 1:d6e5f9c188d3 | 96 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 97 | ledD4=0; |
Enenkel | 1:d6e5f9c188d3 | 98 | ledD13=1; |
Enenkel | 1:d6e5f9c188d3 | 99 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 100 | ledD13=0; |
Enenkel | 1:d6e5f9c188d3 | 101 | ledD14=1; |
Enenkel | 1:d6e5f9c188d3 | 102 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 103 | ledD14=0; |
Enenkel | 1:d6e5f9c188d3 | 104 | ledD15=1; |
Enenkel | 1:d6e5f9c188d3 | 105 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 106 | ledD15=0; |
Enenkel | 1:d6e5f9c188d3 | 107 | ledD16=1; |
Enenkel | 1:d6e5f9c188d3 | 108 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 109 | ledD16=0; |
Enenkel | 1:d6e5f9c188d3 | 110 | ledD17=1; |
Enenkel | 1:d6e5f9c188d3 | 111 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 112 | ledD17=0; |
Enenkel | 1:d6e5f9c188d3 | 113 | ledD18=1; |
Enenkel | 1:d6e5f9c188d3 | 114 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 115 | ledD18=0; |
Enenkel | 1:d6e5f9c188d3 | 116 | ledD19=1; |
Enenkel | 1:d6e5f9c188d3 | 117 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 118 | ledD19=0; |
Enenkel | 1:d6e5f9c188d3 | 119 | ledD20=1; |
Enenkel | 1:d6e5f9c188d3 | 120 | wait (0.2); |
Enenkel | 1:d6e5f9c188d3 | 121 | ledD20=0; |
Enenkel | 1:d6e5f9c188d3 | 122 | a=a++; |
Enenkel | 1:d6e5f9c188d3 | 123 | } |
Enenkel | 1:d6e5f9c188d3 | 124 | |
Enenkel | 1:d6e5f9c188d3 | 125 | // **************** TASTER TEST ******************** |
Enenkel | 1:d6e5f9c188d3 | 126 | pc.printf("TASTER und LDR TEST\n\r"); |
Enenkel | 2:f799412fe395 | 127 | pc.printf(" für POTI TEST drücke sw1 & sw2 \n\r"); |
Enenkel | 2:f799412fe395 | 128 | pc.printf(" -- POTI von 0-1 regelbar !\n\r"); |
Enenkel | 1:d6e5f9c188d3 | 129 | while(1) { |
Enenkel | 1:d6e5f9c188d3 | 130 | if (sw4==1) // SW4 (die Taste1) gedrückt ist, dann: |
Enenkel | 0:7bf2f1754883 | 131 | ledD1=1; |
Enenkel | 0:7bf2f1754883 | 132 | else { |
Enenkel | 1:d6e5f9c188d3 | 133 | ledD1=0; // LED1 off |
Enenkel | 1:d6e5f9c188d3 | 134 | } |
Enenkel | 1:d6e5f9c188d3 | 135 | wait (0.001); // Pause von 0,1 sec vor nächster Abfrage. |
Enenkel | 1:d6e5f9c188d3 | 136 | |
Enenkel | 1:d6e5f9c188d3 | 137 | if (sw3==1) |
Enenkel | 1:d6e5f9c188d3 | 138 | ledD2=1; |
Enenkel | 0:7bf2f1754883 | 139 | else { // beginn der ELSE Bedingung... wenn die Taste NICHT gedrückt ist |
Enenkel | 0:7bf2f1754883 | 140 | ledD2=0; |
Enenkel | 1:d6e5f9c188d3 | 141 | } |
Enenkel | 0:7bf2f1754883 | 142 | wait (0.001); |
Enenkel | 1:d6e5f9c188d3 | 143 | if (sw2==1) //IF .... ELSE ... |
Enenkel | 1:d6e5f9c188d3 | 144 | ledD4=1; |
Enenkel | 0:7bf2f1754883 | 145 | else { // beginn der ELSE Bedingung... wenn die Taste NICHT gedrückt ist |
Enenkel | 1:d6e5f9c188d3 | 146 | ledD4=0; } |
Enenkel | 0:7bf2f1754883 | 147 | wait (0.001); |
Enenkel | 1:d6e5f9c188d3 | 148 | |
Enenkel | 1:d6e5f9c188d3 | 149 | if (sw1==1) //IF .... ELSE ... |
Enenkel | 1:d6e5f9c188d3 | 150 | ledD3=1; // LED1 on |
Enenkel | 1:d6e5f9c188d3 | 151 | else { // beginn der ELSE Bedingung... wenn die Taste NICHT gedrückt ist |
Enenkel | 1:d6e5f9c188d3 | 152 | ledD3=0; |
Enenkel | 0:7bf2f1754883 | 153 | } // } beendet die Anweisungen für die else - Bedingungen |
Enenkel | 0:7bf2f1754883 | 154 | wait (0.001); // Pause von 0,1 sec vor nächster Abfrage. |
Enenkel | 1:d6e5f9c188d3 | 155 | |
Enenkel | 1:d6e5f9c188d3 | 156 | /*************** LDR TEST *******************************/ |
Enenkel | 1:d6e5f9c188d3 | 157 | if(LDR <= 0.2) |
Enenkel | 1:d6e5f9c188d3 | 158 | ledD1=1; |
Enenkel | 1:d6e5f9c188d3 | 159 | else |
Enenkel | 1:d6e5f9c188d3 | 160 | ledD1=0; |
Enenkel | 1:d6e5f9c188d3 | 161 | |
Enenkel | 1:d6e5f9c188d3 | 162 | if(LDR <= 0.07) // Ab einer Lichtstärke von 0.15 oder kleiner |
Enenkel | 1:d6e5f9c188d3 | 163 | ledD4 = 1; // Ist die LED D1 EIN |
Enenkel | 1:d6e5f9c188d3 | 164 | else |
Enenkel | 1:d6e5f9c188d3 | 165 | ledD4 = 0; |
Enenkel | 1:d6e5f9c188d3 | 166 | |
Enenkel | 1:d6e5f9c188d3 | 167 | if (LDR <= 0.1) |
Enenkel | 1:d6e5f9c188d3 | 168 | ledD3=1; |
Enenkel | 1:d6e5f9c188d3 | 169 | else |
Enenkel | 1:d6e5f9c188d3 | 170 | ledD3=0; |
Enenkel | 1:d6e5f9c188d3 | 171 | |
Enenkel | 1:d6e5f9c188d3 | 172 | if (LDR <= 0.15) |
Enenkel | 1:d6e5f9c188d3 | 173 | ledD2=1; |
Enenkel | 1:d6e5f9c188d3 | 174 | else |
Enenkel | 1:d6e5f9c188d3 | 175 | ledD2=0; |
Enenkel | 1:d6e5f9c188d3 | 176 | |
Enenkel | 1:d6e5f9c188d3 | 177 | wait (0.01); |
Enenkel | 2:f799412fe395 | 178 | |
Enenkel | 2:f799412fe395 | 179 | /*********** POTI - TEST ***********/ |
Enenkel | 2:f799412fe395 | 180 | // Printet den Wert des POTI auf den CRT |
Enenkel | 2:f799412fe395 | 181 | // Poti Wert verändern, Ändert Wert |
Enenkel | 2:f799412fe395 | 182 | if (sw1==1) { |
Enenkel | 2:f799412fe395 | 183 | if (sw2==1) { |
Enenkel | 2:f799412fe395 | 184 | printf ("POTI = %.3f \n\r",(float)POTI); |
Enenkel | 2:f799412fe395 | 185 | wait(2); |
Enenkel | 2:f799412fe395 | 186 | } |
Enenkel | 2:f799412fe395 | 187 | } |
Enenkel | 2:f799412fe395 | 188 | // LM75B Temperatur auslesen und anzeigen |
Enenkel | 2:f799412fe395 | 189 | // Finger auf den BIM und Wert ändert sich |
Enenkel | 2:f799412fe395 | 190 | if (sw2==1) { |
Enenkel | 2:f799412fe395 | 191 | if (sw3==1) { |
Enenkel | 2:f799412fe395 | 192 | pc.printf ("Temp = %.3f \n\r",(float)sensor); |
Enenkel | 2:f799412fe395 | 193 | // pc.printf ("Temp= %.3f \n\r",LM75B_Temp); |
Enenkel | 2:f799412fe395 | 194 | |
Enenkel | 2:f799412fe395 | 195 | wait(2); |
Enenkel | 2:f799412fe395 | 196 | } |
Enenkel | 2:f799412fe395 | 197 | } |
Enenkel | 2:f799412fe395 | 198 | |
Enenkel | 2:f799412fe395 | 199 | |
Enenkel | 1:d6e5f9c188d3 | 200 | /* readChar = pc.getc(); |
Enenkel | 1:d6e5f9c188d3 | 201 | if(readChar >= 65 && readChar <= 90){ // Großbuchstaben in Kleinbuchstaben umwandeln |
Enenkel | 1:d6e5f9c188d3 | 202 | pc.putc(readChar + 32); |
Enenkel | 1:d6e5f9c188d3 | 203 | } else if(readChar >= 97 && readChar <= 122){ // Kleinbuchstaben in Großbuchstaben umwandeln |
Enenkel | 1:d6e5f9c188d3 | 204 | pc.putc(readChar - 32); |
Enenkel | 1:d6e5f9c188d3 | 205 | } else { // Sonst schicke was gekommen ist |
Enenkel | 1:d6e5f9c188d3 | 206 | pc.putc(readChar); |
Enenkel | 1:d6e5f9c188d3 | 207 | } |
Enenkel | 1:d6e5f9c188d3 | 208 | */ |
Enenkel | 1:d6e5f9c188d3 | 209 | |
Enenkel | 1:d6e5f9c188d3 | 210 | } |
Enenkel | 1:d6e5f9c188d3 | 211 | } |
Enenkel | 1:d6e5f9c188d3 | 212 | /***********/ |
Enenkel | 1:d6e5f9c188d3 | 213 | /******************** ENDE ***********************/ |