Andreas Schögler
/
GruppeA
ysetr
GruppeA.cpp@1:bb1a9447ce78, 2015-06-16 (annotated)
- Committer:
- AndreasSchoegler
- Date:
- Tue Jun 16 16:14:29 2015 +0000
- Revision:
- 1:bb1a9447ce78
- Parent:
- 0:74db8ce1771f
GruppeA
Who changed what in which revision?
User | Revision | Line number | New 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 | } |