Testet die Funktionen des MO Boards der HTL BULME

Dependencies:   LM75B mbed

Fork of _HIMBED_TEST1 by BULME_HIMBED

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?

UserRevisionLine numberNew 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 ***********************/