Gruppe_A

Dependencies:   mbed

Fork of GruppeA by Andreas Schögler

Committer:
AndreasSchoegler
Date:
Tue Jun 16 16:14:29 2015 +0000
Revision:
1:bb1a9447ce78
Parent:
0:74db8ce1771f
GruppeA

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndreasSchoegler 0:74db8ce1771f 1 #include "mbed.h"
AndreasSchoegler 0:74db8ce1771f 2
AndreasSchoegler 0:74db8ce1771f 3
AndreasSchoegler 0:74db8ce1771f 4 InterruptIn iiUp(p15);
AndreasSchoegler 0:74db8ce1771f 5 Timer timer1;
AndreasSchoegler 0:74db8ce1771f 6 int los=0;
AndreasSchoegler 0:74db8ce1771f 7 int b=0;
AndreasSchoegler 0:74db8ce1771f 8 int text_neu = 0;
AndreasSchoegler 0:74db8ce1771f 9
AndreasSchoegler 0:74db8ce1771f 10 BusOut doLeds(LED1,LED2,LED3,LED4);
AndreasSchoegler 0:74db8ce1771f 11
AndreasSchoegler 1:bb1a9447ce78 12 DigitalOut led1(LED1);
AndreasSchoegler 1:bb1a9447ce78 13 DigitalOut led2(LED2);
AndreasSchoegler 1:bb1a9447ce78 14 DigitalOut led3(LED3);
AndreasSchoegler 1:bb1a9447ce78 15 DigitalOut led4(LED4);
AndreasSchoegler 1:bb1a9447ce78 16
AndreasSchoegler 1:bb1a9447ce78 17
AndreasSchoegler 0:74db8ce1771f 18 // global vars and objects
AndreasSchoegler 1:bb1a9447ce78 19
AndreasSchoegler 0:74db8ce1771f 20 Serial pc(USBTX, USBRX); // tx, rx ; is default !!! (9600, 8N1)
AndreasSchoegler 0:74db8ce1771f 21 char recChar=0;
AndreasSchoegler 0:74db8ce1771f 22 bool recFlag=false;
AndreasSchoegler 0:74db8ce1771f 23 char recArr[20];
AndreasSchoegler 0:74db8ce1771f 24 int index=0;
AndreasSchoegler 0:74db8ce1771f 25
AndreasSchoegler 0:74db8ce1771f 26 // functions
AndreasSchoegler 0:74db8ce1771f 27 void flushSerialBuffer() {
AndreasSchoegler 0:74db8ce1771f 28 while (pc.readable()) {
AndreasSchoegler 0:74db8ce1771f 29 pc.getc();
AndreasSchoegler 0:74db8ce1771f 30 }
AndreasSchoegler 0:74db8ce1771f 31 }
AndreasSchoegler 1:bb1a9447ce78 32
AndreasSchoegler 1:bb1a9447ce78 33 void error()
AndreasSchoegler 1:bb1a9447ce78 34 {
AndreasSchoegler 1:bb1a9447ce78 35
AndreasSchoegler 1:bb1a9447ce78 36
AndreasSchoegler 1:bb1a9447ce78 37 }
AndreasSchoegler 1:bb1a9447ce78 38
AndreasSchoegler 0:74db8ce1771f 39
AndreasSchoegler 0:74db8ce1771f 40 void readData() {
AndreasSchoegler 0:74db8ce1771f 41
AndreasSchoegler 0:74db8ce1771f 42 //if(los>=1)
AndreasSchoegler 0:74db8ce1771f 43 //{
AndreasSchoegler 0:74db8ce1771f 44 recChar = pc.getc();
AndreasSchoegler 0:74db8ce1771f 45 recArr[index] = recChar;
AndreasSchoegler 0:74db8ce1771f 46 index++;
AndreasSchoegler 0:74db8ce1771f 47 if ((recChar == '\r') || (index>=19)) {
AndreasSchoegler 0:74db8ce1771f 48 recFlag = true;
AndreasSchoegler 0:74db8ce1771f 49 recArr[index] = 0;
AndreasSchoegler 0:74db8ce1771f 50
AndreasSchoegler 0:74db8ce1771f 51 float t = timer1.read_ms();
AndreasSchoegler 0:74db8ce1771f 52 pc.printf(" - That's the input: %f L= %d %s\r\n", t,index,recArr);
AndreasSchoegler 0:74db8ce1771f 53 if(recArr[0] == 'A' || recArr[0] == 'a')
AndreasSchoegler 0:74db8ce1771f 54 {
AndreasSchoegler 0:74db8ce1771f 55 pc.printf("Aus");
AndreasSchoegler 0:74db8ce1771f 56 doLeds=0;
AndreasSchoegler 0:74db8ce1771f 57
AndreasSchoegler 0:74db8ce1771f 58
AndreasSchoegler 0:74db8ce1771f 59
AndreasSchoegler 0:74db8ce1771f 60 }
AndreasSchoegler 1:bb1a9447ce78 61 else if(recArr[0] == 'e' || recArr[0] == 'E')
AndreasSchoegler 0:74db8ce1771f 62 {
AndreasSchoegler 0:74db8ce1771f 63 pc.printf("ein");
AndreasSchoegler 0:74db8ce1771f 64 doLeds=15;
AndreasSchoegler 0:74db8ce1771f 65
AndreasSchoegler 0:74db8ce1771f 66
AndreasSchoegler 0:74db8ce1771f 67
AndreasSchoegler 0:74db8ce1771f 68 }
AndreasSchoegler 0:74db8ce1771f 69
AndreasSchoegler 0:74db8ce1771f 70
AndreasSchoegler 1:bb1a9447ce78 71 else if(recArr[0] == 'L' && recArr[3]== 'E')
AndreasSchoegler 0:74db8ce1771f 72 {
AndreasSchoegler 0:74db8ce1771f 73
AndreasSchoegler 1:bb1a9447ce78 74 switch (recArr[1])
AndreasSchoegler 1:bb1a9447ce78 75 {
AndreasSchoegler 1:bb1a9447ce78 76 case '1':
AndreasSchoegler 1:bb1a9447ce78 77 led1 =1;
AndreasSchoegler 1:bb1a9447ce78 78 break;
AndreasSchoegler 1:bb1a9447ce78 79
AndreasSchoegler 1:bb1a9447ce78 80 case '2':
AndreasSchoegler 1:bb1a9447ce78 81 led2 =1;
AndreasSchoegler 1:bb1a9447ce78 82 break;
AndreasSchoegler 1:bb1a9447ce78 83
AndreasSchoegler 1:bb1a9447ce78 84 case '3':
AndreasSchoegler 1:bb1a9447ce78 85 led3 =1;
AndreasSchoegler 1:bb1a9447ce78 86 break;
AndreasSchoegler 1:bb1a9447ce78 87
AndreasSchoegler 1:bb1a9447ce78 88 case '4':
AndreasSchoegler 1:bb1a9447ce78 89 led4 =1;
AndreasSchoegler 1:bb1a9447ce78 90 break;
AndreasSchoegler 1:bb1a9447ce78 91
AndreasSchoegler 1:bb1a9447ce78 92 default:
AndreasSchoegler 1:bb1a9447ce78 93 // fehlerausgabe
AndreasSchoegler 1:bb1a9447ce78 94 break;
AndreasSchoegler 1:bb1a9447ce78 95
AndreasSchoegler 1:bb1a9447ce78 96 }
AndreasSchoegler 0:74db8ce1771f 97
AndreasSchoegler 0:74db8ce1771f 98
AndreasSchoegler 1:bb1a9447ce78 99
AndreasSchoegler 1:bb1a9447ce78 100 }
AndreasSchoegler 1:bb1a9447ce78 101
AndreasSchoegler 1:bb1a9447ce78 102
AndreasSchoegler 1:bb1a9447ce78 103 else if(recArr[0] == 'L' && recArr[3]== 'A')
AndreasSchoegler 1:bb1a9447ce78 104 {
AndreasSchoegler 1:bb1a9447ce78 105
AndreasSchoegler 1:bb1a9447ce78 106 switch (recArr[1])
AndreasSchoegler 1:bb1a9447ce78 107 {
AndreasSchoegler 1:bb1a9447ce78 108 case '1':
AndreasSchoegler 1:bb1a9447ce78 109 led1 =0;
AndreasSchoegler 1:bb1a9447ce78 110 break;
AndreasSchoegler 1:bb1a9447ce78 111
AndreasSchoegler 1:bb1a9447ce78 112 case '2':
AndreasSchoegler 1:bb1a9447ce78 113 led2 =0;
AndreasSchoegler 1:bb1a9447ce78 114 break;
AndreasSchoegler 1:bb1a9447ce78 115
AndreasSchoegler 1:bb1a9447ce78 116 case '3':
AndreasSchoegler 1:bb1a9447ce78 117 led3 =0;
AndreasSchoegler 1:bb1a9447ce78 118 break;
AndreasSchoegler 1:bb1a9447ce78 119
AndreasSchoegler 1:bb1a9447ce78 120 case '4':
AndreasSchoegler 1:bb1a9447ce78 121 led4 =0;
AndreasSchoegler 1:bb1a9447ce78 122 break;
AndreasSchoegler 1:bb1a9447ce78 123
AndreasSchoegler 1:bb1a9447ce78 124 default:
AndreasSchoegler 1:bb1a9447ce78 125 // fehlerausgabe
AndreasSchoegler 1:bb1a9447ce78 126 break;
AndreasSchoegler 1:bb1a9447ce78 127
AndreasSchoegler 1:bb1a9447ce78 128 }
AndreasSchoegler 0:74db8ce1771f 129
AndreasSchoegler 0:74db8ce1771f 130
AndreasSchoegler 1:bb1a9447ce78 131
AndreasSchoegler 1:bb1a9447ce78 132 }
AndreasSchoegler 1:bb1a9447ce78 133 else
AndreasSchoegler 1:bb1a9447ce78 134 {
AndreasSchoegler 1:bb1a9447ce78 135 // Fehlerfall
AndreasSchoegler 0:74db8ce1771f 136
AndreasSchoegler 0:74db8ce1771f 137 }
AndreasSchoegler 0:74db8ce1771f 138
AndreasSchoegler 0:74db8ce1771f 139
AndreasSchoegler 0:74db8ce1771f 140
AndreasSchoegler 0:74db8ce1771f 141
AndreasSchoegler 0:74db8ce1771f 142
AndreasSchoegler 1:bb1a9447ce78 143
AndreasSchoegler 0:74db8ce1771f 144 index = 0;
AndreasSchoegler 0:74db8ce1771f 145 timer1.stop();
AndreasSchoegler 0:74db8ce1771f 146 timer1.reset();
AndreasSchoegler 0:74db8ce1771f 147 flushSerialBuffer();
AndreasSchoegler 0:74db8ce1771f 148 los=0;
AndreasSchoegler 1:bb1a9447ce78 149 b=0;
AndreasSchoegler 0:74db8ce1771f 150
AndreasSchoegler 0:74db8ce1771f 151 //}
AndreasSchoegler 0:74db8ce1771f 152 }
AndreasSchoegler 0:74db8ce1771f 153 }
AndreasSchoegler 0:74db8ce1771f 154
AndreasSchoegler 0:74db8ce1771f 155 void SendText()
AndreasSchoegler 0:74db8ce1771f 156 {
AndreasSchoegler 0:74db8ce1771f 157
AndreasSchoegler 0:74db8ce1771f 158 pc.printf("Geben Sie ein Wort mit mindestens 5 und maximal 10 ein:");
AndreasSchoegler 0:74db8ce1771f 159 timer1.start();
AndreasSchoegler 0:74db8ce1771f 160 los=1;
AndreasSchoegler 0:74db8ce1771f 161
AndreasSchoegler 0:74db8ce1771f 162 }
AndreasSchoegler 0:74db8ce1771f 163
AndreasSchoegler 0:74db8ce1771f 164 int main() {
AndreasSchoegler 0:74db8ce1771f 165 pc.baud(115200);
AndreasSchoegler 0:74db8ce1771f 166 //pc.baud(38400);
AndreasSchoegler 0:74db8ce1771f 167 pc.format(8, SerialBase::Odd, 2);
AndreasSchoegler 0:74db8ce1771f 168 led2 = 1;
AndreasSchoegler 0:74db8ce1771f 169
AndreasSchoegler 0:74db8ce1771f 170 flushSerialBuffer();
AndreasSchoegler 0:74db8ce1771f 171 if(b>=0)
AndreasSchoegler 0:74db8ce1771f 172 {
AndreasSchoegler 1:bb1a9447ce78 173 pc.printf("Programm Andreas Schoegler Gruppe2 \r\n");
AndreasSchoegler 0:74db8ce1771f 174 b=1;
AndreasSchoegler 0:74db8ce1771f 175 }
AndreasSchoegler 0:74db8ce1771f 176
AndreasSchoegler 0:74db8ce1771f 177 pc.attach(&readData);
AndreasSchoegler 0:74db8ce1771f 178
AndreasSchoegler 0:74db8ce1771f 179 flushSerialBuffer();
AndreasSchoegler 0:74db8ce1771f 180 if(text_neu>=0)
AndreasSchoegler 0:74db8ce1771f 181 {
AndreasSchoegler 0:74db8ce1771f 182 pc.printf("Bitte Steuer_string eingeben \r\n");
AndreasSchoegler 0:74db8ce1771f 183 text_neu=1;
AndreasSchoegler 0:74db8ce1771f 184 }
AndreasSchoegler 0:74db8ce1771f 185
AndreasSchoegler 0:74db8ce1771f 186
AndreasSchoegler 0:74db8ce1771f 187 //iiUp.rise(&SendText);
AndreasSchoegler 0:74db8ce1771f 188
AndreasSchoegler 0:74db8ce1771f 189
AndreasSchoegler 0:74db8ce1771f 190
AndreasSchoegler 0:74db8ce1771f 191 while(1) {
AndreasSchoegler 0:74db8ce1771f 192 if (recFlag) {
AndreasSchoegler 0:74db8ce1771f 193 flushSerialBuffer();
AndreasSchoegler 0:74db8ce1771f 194 // pc.printf(" - That's the input: %s\r\n", recArr); // non reantrant function
AndreasSchoegler 0:74db8ce1771f 195 recFlag = false;
AndreasSchoegler 0:74db8ce1771f 196 //led2 = !led2;
AndreasSchoegler 0:74db8ce1771f 197 }
AndreasSchoegler 0:74db8ce1771f 198 }
AndreasSchoegler 0:74db8ce1771f 199 }