fsst test

Dependencies:   mbed

Committer:
Eisner_Benjamin
Date:
Tue Feb 04 07:49:32 2020 +0000
Revision:
0:e60a35ddc5d6
FSST TEST 2

Who changed what in which revision?

UserRevisionLine numberNew 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 }