![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
fsst test
main.cpp@0:e60a35ddc5d6, 2020-02-04 (annotated)
- Committer:
- Eisner_Benjamin
- Date:
- Tue Feb 04 07:49:32 2020 +0000
- Revision:
- 0:e60a35ddc5d6
FSST TEST 2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Eisner_Benjamin | 0:e60a35ddc5d6 | 1 | #include "mbed.h" |
Eisner_Benjamin | 0:e60a35ddc5d6 | 2 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 3 | DigitalOut led1(LED1); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 4 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 5 | Thread t1; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 6 | Thread t2; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 7 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 8 | Serial pc(USBTX, USBRX, 9600); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 9 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 10 | int ton = 500; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 11 | int toff = 500; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 12 | char tmp; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 13 | int plusminus; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 14 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 15 | Mutex mutex; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 16 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 17 | void led_blink() |
Eisner_Benjamin | 0:e60a35ddc5d6 | 18 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 19 | while(1){ |
Eisner_Benjamin | 0:e60a35ddc5d6 | 20 | led1 = 1; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 21 | ThisThread::sleep_for(ton); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 22 | led1 = 0; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 23 | ThisThread::sleep_for(toff); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 24 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 25 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 26 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 27 | void interface() |
Eisner_Benjamin | 0:e60a35ddc5d6 | 28 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 29 | while(1){ |
Eisner_Benjamin | 0:e60a35ddc5d6 | 30 | if(pc.readable()) |
Eisner_Benjamin | 0:e60a35ddc5d6 | 31 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 32 | tmp = pc.getc(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 33 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 34 | if(tmp == 'H') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 35 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 36 | printf("High wird geaendert\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 37 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 38 | while(plusminus != 'L' && plusminus != 'R') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 39 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 40 | plusminus = pc.getc(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 41 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 42 | if(plusminus == '+') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 43 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 44 | mutex.lock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 45 | ton += 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 46 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 47 | if(ton >= 2000) |
Eisner_Benjamin | 0:e60a35ddc5d6 | 48 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 49 | printf("Maximalwert erreicht\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 50 | ton = 2000; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 51 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 52 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 53 | mutex.unlock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 54 | printf("Ton = %d\n", ton); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 55 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 56 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 57 | if(plusminus == '-') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 58 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 59 | mutex.lock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 60 | ton -= 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 61 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 62 | if(ton <= 100) |
Eisner_Benjamin | 0:e60a35ddc5d6 | 63 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 64 | printf("Minimalwert erreicht\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 65 | ton = 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 66 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 67 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 68 | mutex.unlock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 69 | printf("Ton = %d\n", ton); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 70 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 71 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 72 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 73 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 74 | if(tmp == 'L') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 75 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 76 | printf("Low wird geaendert\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 77 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 78 | while(plusminus != 'H' && plusminus != 'R') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 79 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 80 | plusminus = pc.getc(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 81 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 82 | if(plusminus == '-') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 83 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 84 | mutex.lock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 85 | toff -= 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 86 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 87 | if(toff <= 100) |
Eisner_Benjamin | 0:e60a35ddc5d6 | 88 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 89 | printf("Minimalwert erreicht\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 90 | toff = 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 91 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 92 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 93 | mutex.unlock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 94 | printf("Toff = %d\n", toff); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 95 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 96 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 97 | if(plusminus == '+') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 98 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 99 | mutex.lock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 100 | toff += 100; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 101 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 102 | if(toff >= 2000) |
Eisner_Benjamin | 0:e60a35ddc5d6 | 103 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 104 | printf("Maximalwert erreicht\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 105 | toff = 2000; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 106 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 107 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 108 | mutex.unlock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 109 | printf("Toff = %d\n", toff); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 110 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 111 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 112 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 113 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 114 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 115 | if(tmp == 'R') |
Eisner_Benjamin | 0:e60a35ddc5d6 | 116 | { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 117 | printf("Reset\n"); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 118 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 119 | mutex.lock(); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 120 | ton = 500; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 121 | toff = 500; |
Eisner_Benjamin | 0:e60a35ddc5d6 | 122 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 123 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 124 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 125 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 126 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 127 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 128 | int main() { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 129 | t1.start(led_blink); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 130 | t2.start(interface); |
Eisner_Benjamin | 0:e60a35ddc5d6 | 131 | |
Eisner_Benjamin | 0:e60a35ddc5d6 | 132 | while(1) { |
Eisner_Benjamin | 0:e60a35ddc5d6 | 133 | } |
Eisner_Benjamin | 0:e60a35ddc5d6 | 134 | } |