Andreas Schögler
/
GruppeA
ysetr
GruppeA.cpp@0:74db8ce1771f, 2015-06-10 (annotated)
- Committer:
- AndreasSchoegler
- Date:
- Wed Jun 10 16:22:46 2015 +0000
- Revision:
- 0:74db8ce1771f
- Child:
- 1:bb1a9447ce78
y<df
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 | 0:74db8ce1771f | 12 | // global vars and objects |
AndreasSchoegler | 0:74db8ce1771f | 13 | DigitalOut led2(LED2); |
AndreasSchoegler | 0:74db8ce1771f | 14 | Serial pc(USBTX, USBRX); // tx, rx ; is default !!! (9600, 8N1) |
AndreasSchoegler | 0:74db8ce1771f | 15 | char recChar=0; |
AndreasSchoegler | 0:74db8ce1771f | 16 | bool recFlag=false; |
AndreasSchoegler | 0:74db8ce1771f | 17 | char recArr[20]; |
AndreasSchoegler | 0:74db8ce1771f | 18 | int index=0; |
AndreasSchoegler | 0:74db8ce1771f | 19 | |
AndreasSchoegler | 0:74db8ce1771f | 20 | // functions |
AndreasSchoegler | 0:74db8ce1771f | 21 | void flushSerialBuffer() { |
AndreasSchoegler | 0:74db8ce1771f | 22 | while (pc.readable()) { |
AndreasSchoegler | 0:74db8ce1771f | 23 | pc.getc(); |
AndreasSchoegler | 0:74db8ce1771f | 24 | } |
AndreasSchoegler | 0:74db8ce1771f | 25 | } |
AndreasSchoegler | 0:74db8ce1771f | 26 | |
AndreasSchoegler | 0:74db8ce1771f | 27 | void readData() { |
AndreasSchoegler | 0:74db8ce1771f | 28 | |
AndreasSchoegler | 0:74db8ce1771f | 29 | //if(los>=1) |
AndreasSchoegler | 0:74db8ce1771f | 30 | //{ |
AndreasSchoegler | 0:74db8ce1771f | 31 | recChar = pc.getc(); |
AndreasSchoegler | 0:74db8ce1771f | 32 | recArr[index] = recChar; |
AndreasSchoegler | 0:74db8ce1771f | 33 | index++; |
AndreasSchoegler | 0:74db8ce1771f | 34 | if ((recChar == '\r') || (index>=19)) { |
AndreasSchoegler | 0:74db8ce1771f | 35 | recFlag = true; |
AndreasSchoegler | 0:74db8ce1771f | 36 | recArr[index] = 0; |
AndreasSchoegler | 0:74db8ce1771f | 37 | |
AndreasSchoegler | 0:74db8ce1771f | 38 | float t = timer1.read_ms(); |
AndreasSchoegler | 0:74db8ce1771f | 39 | pc.printf(" - That's the input: %f L= %d %s\r\n", t,index,recArr); |
AndreasSchoegler | 0:74db8ce1771f | 40 | if(recArr[0] == 'A' || recArr[0] == 'a') |
AndreasSchoegler | 0:74db8ce1771f | 41 | { |
AndreasSchoegler | 0:74db8ce1771f | 42 | pc.printf("Aus"); |
AndreasSchoegler | 0:74db8ce1771f | 43 | doLeds=0; |
AndreasSchoegler | 0:74db8ce1771f | 44 | |
AndreasSchoegler | 0:74db8ce1771f | 45 | |
AndreasSchoegler | 0:74db8ce1771f | 46 | |
AndreasSchoegler | 0:74db8ce1771f | 47 | } |
AndreasSchoegler | 0:74db8ce1771f | 48 | if(recArr[0] == 'e' || recArr[0] == 'E') |
AndreasSchoegler | 0:74db8ce1771f | 49 | { |
AndreasSchoegler | 0:74db8ce1771f | 50 | pc.printf("ein"); |
AndreasSchoegler | 0:74db8ce1771f | 51 | doLeds=15; |
AndreasSchoegler | 0:74db8ce1771f | 52 | |
AndreasSchoegler | 0:74db8ce1771f | 53 | |
AndreasSchoegler | 0:74db8ce1771f | 54 | |
AndreasSchoegler | 0:74db8ce1771f | 55 | } |
AndreasSchoegler | 0:74db8ce1771f | 56 | |
AndreasSchoegler | 0:74db8ce1771f | 57 | |
AndreasSchoegler | 0:74db8ce1771f | 58 | if(recArr[0] == 'L') |
AndreasSchoegler | 0:74db8ce1771f | 59 | { |
AndreasSchoegler | 0:74db8ce1771f | 60 | |
AndreasSchoegler | 0:74db8ce1771f | 61 | |
AndreasSchoegler | 0:74db8ce1771f | 62 | |
AndreasSchoegler | 0:74db8ce1771f | 63 | |
AndreasSchoegler | 0:74db8ce1771f | 64 | |
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 | 0:74db8ce1771f | 71 | |
AndreasSchoegler | 0:74db8ce1771f | 72 | index = 0; |
AndreasSchoegler | 0:74db8ce1771f | 73 | timer1.stop(); |
AndreasSchoegler | 0:74db8ce1771f | 74 | timer1.reset(); |
AndreasSchoegler | 0:74db8ce1771f | 75 | flushSerialBuffer(); |
AndreasSchoegler | 0:74db8ce1771f | 76 | los=0; |
AndreasSchoegler | 0:74db8ce1771f | 77 | |
AndreasSchoegler | 0:74db8ce1771f | 78 | //} |
AndreasSchoegler | 0:74db8ce1771f | 79 | } |
AndreasSchoegler | 0:74db8ce1771f | 80 | } |
AndreasSchoegler | 0:74db8ce1771f | 81 | |
AndreasSchoegler | 0:74db8ce1771f | 82 | void SendText() |
AndreasSchoegler | 0:74db8ce1771f | 83 | { |
AndreasSchoegler | 0:74db8ce1771f | 84 | |
AndreasSchoegler | 0:74db8ce1771f | 85 | pc.printf("Geben Sie ein Wort mit mindestens 5 und maximal 10 ein:"); |
AndreasSchoegler | 0:74db8ce1771f | 86 | timer1.start(); |
AndreasSchoegler | 0:74db8ce1771f | 87 | los=1; |
AndreasSchoegler | 0:74db8ce1771f | 88 | |
AndreasSchoegler | 0:74db8ce1771f | 89 | } |
AndreasSchoegler | 0:74db8ce1771f | 90 | |
AndreasSchoegler | 0:74db8ce1771f | 91 | int main() { |
AndreasSchoegler | 0:74db8ce1771f | 92 | pc.baud(115200); |
AndreasSchoegler | 0:74db8ce1771f | 93 | //pc.baud(38400); |
AndreasSchoegler | 0:74db8ce1771f | 94 | pc.format(8, SerialBase::Odd, 2); |
AndreasSchoegler | 0:74db8ce1771f | 95 | led2 = 1; |
AndreasSchoegler | 0:74db8ce1771f | 96 | |
AndreasSchoegler | 0:74db8ce1771f | 97 | flushSerialBuffer(); |
AndreasSchoegler | 0:74db8ce1771f | 98 | if(b>=0) |
AndreasSchoegler | 0:74db8ce1771f | 99 | { |
AndreasSchoegler | 0:74db8ce1771f | 100 | pc.printf("Programm Andreas Schögler Gruppe2 \r\n"); |
AndreasSchoegler | 0:74db8ce1771f | 101 | b=1; |
AndreasSchoegler | 0:74db8ce1771f | 102 | } |
AndreasSchoegler | 0:74db8ce1771f | 103 | |
AndreasSchoegler | 0:74db8ce1771f | 104 | pc.attach(&readData); |
AndreasSchoegler | 0:74db8ce1771f | 105 | |
AndreasSchoegler | 0:74db8ce1771f | 106 | flushSerialBuffer(); |
AndreasSchoegler | 0:74db8ce1771f | 107 | if(text_neu>=0) |
AndreasSchoegler | 0:74db8ce1771f | 108 | { |
AndreasSchoegler | 0:74db8ce1771f | 109 | pc.printf("Bitte Steuer_string eingeben \r\n"); |
AndreasSchoegler | 0:74db8ce1771f | 110 | text_neu=1; |
AndreasSchoegler | 0:74db8ce1771f | 111 | } |
AndreasSchoegler | 0:74db8ce1771f | 112 | |
AndreasSchoegler | 0:74db8ce1771f | 113 | |
AndreasSchoegler | 0:74db8ce1771f | 114 | //iiUp.rise(&SendText); |
AndreasSchoegler | 0:74db8ce1771f | 115 | |
AndreasSchoegler | 0:74db8ce1771f | 116 | |
AndreasSchoegler | 0:74db8ce1771f | 117 | |
AndreasSchoegler | 0:74db8ce1771f | 118 | while(1) { |
AndreasSchoegler | 0:74db8ce1771f | 119 | if (recFlag) { |
AndreasSchoegler | 0:74db8ce1771f | 120 | flushSerialBuffer(); |
AndreasSchoegler | 0:74db8ce1771f | 121 | // pc.printf(" - That's the input: %s\r\n", recArr); // non reantrant function |
AndreasSchoegler | 0:74db8ce1771f | 122 | recFlag = false; |
AndreasSchoegler | 0:74db8ce1771f | 123 | //led2 = !led2; |
AndreasSchoegler | 0:74db8ce1771f | 124 | } |
AndreasSchoegler | 0:74db8ce1771f | 125 | } |
AndreasSchoegler | 0:74db8ce1771f | 126 | } |