HAPO WS22 / Mbed 2 deprecated HAPO_WS22_Labor3_final

Dependencies:   mbed

Revision:
16:404bcdd9c518
Parent:
15:bbcf8c3f91c5
Child:
17:c34f14ec2beb
--- a/main.cpp	Mon Dec 05 09:05:43 2022 +0000
+++ b/main.cpp	Mon Dec 05 09:29:47 2022 +0000
@@ -257,20 +257,13 @@
 
 /* Tastenabfrage */
 void vTasteS1( void ){
-    if(pinS1 == 0 || abTxBuffer[0] == 'a'){                             /* User-Taste gedrückt */
-        
-        do{
-            for(zaehler=0; zaehler<=250; zaehler++){                                      /*Zaehlen der Tastatur-Eingabe*/
-                if(abTxBuffer[zaehler] == 'a') bSCounter++;
-            }
-        } while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]);
-        
-        if(bS1Timer < nTastLong+1 || bSCounter < nTastLong+1){             /* Abfrage max. bis Taste lange gedrückt */
+    if(pinS1 == 0){                             /* User-Taste gedrückt */      
+        if(bS1Timer < nTastLong+1){             /* Abfrage max. bis Taste lange gedrückt */
             if(bS1Timer == nTastShort){         /* Taste "kurz gedrückt" erkannt */
                 //...
                 }
-            if(bS1Timer == nTastLong || bSCounter == nTastLong){          /* Taste "lange gedrückt" erkannt */ 
-                if(bDisplayState == enSchwellenwert || bDisplayState == enPotiAnzeige){
+            if(bS1Timer == nTastLong){          /* Taste "lange gedrückt" erkannt */ 
+                if(bDisplayState == enSchwellenwert){
                     bDisplayState = enVergleich;
                     bMainState = enVergleich;
                     }
@@ -283,7 +276,7 @@
             }
         }
     else{                                       /* Taste nicht gedrückt */ 
-        if(((bS1Timer >= nTastShort) && (bS1Timer <= nTastLong)) || ((bSCounter >= nTastShort) && (bSCounter <= nTastLong))){             /* Taste wurde bereits erkannt */
+        if(((bS1Timer >= nTastShort) && (bS1Timer <= nTastLong))){             /* Taste wurde bereits erkannt */
             if(bDisplayState == enSchwellenwert){
                     bDisplayState = enPotiAnzeige; 
                     bMainState = enPotiAnzeige;
@@ -296,16 +289,49 @@
         bS1Timer = 0;
         bSCounter = 0;
         }
+        
+    if(abTxBuffer[0] == 'b') {                            /* User-Taste gedrückt */
+
+        for(zaehler=0; zaehler<=250; zaehler++) {                                     /*Zaehlen der Tastatur-Eingabe*/
+            while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]) if(abTxBuffer[zaehler] == 'b') bSCounter++;
+        }
+
+        if(bSCounter < nTastLong+1) {            /* Abfrage max. bis Taste lange gedrückt */
+            if(bS1Timer == nTastShort) {        /* Taste "kurz gedrückt" erkannt */
+                //...
+            }
+            if(bSCounter == nTastLong) {         /* Taste "lange gedrückt" erkannt */
+                if(bDisplayState == enPotiAnzeige) {
+                    bDisplayState = enVergleich;
+                    bMainState = enVergleich;
+                } else {
+                    bDisplayState = enSchwellenwert;
+                    bMainState = enSchwellenwert;
+                }
+            }
+            bS1Timer++;
+        }
+    } else {                                    /* Taste nicht gedrückt */
+        if(((bSCounter >= nTastShort) && (bSCounter <= nTastLong))) {            /* Taste wurde bereits erkannt */
+            if(bDisplayState == enSchwellenwert) {
+                bDisplayState = enPotiAnzeige;
+                bMainState = enPotiAnzeige;
+            } else {
+                bDisplayState = enSchwellenwert;
+                bMainState= enSchwellenwert;
+            }
+        }
+        bS1Timer = 0;
+        bSCounter = 0;
+    }
     } 
 
 void vTasteS2( void ){
-    if((pinS2 == 0 || abTxBuffer[0] == '+') && bMainState == enSchwellenwert){                             /* User-Taste gedrückt */
+    if((pinS2 == 0 || abTxBuffer[0] == ',') && bMainState == enSchwellenwert){                             /* User-Taste gedrückt */
     
-        do{
-            for(zaehler=0; zaehler<=250; zaehler++){                                      /*Zaehlen der Tastatur-Eingabe*/
-                if(abTxBuffer[zaehler] == 'a') bSCounter++;
-            }
-        } while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]);
+        for(zaehler=0; zaehler<=250; zaehler++){                                      /*Zaehlen der Tastatur-Eingabe*/
+             while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]) if(abTxBuffer[zaehler] == ',') bSCounter++;
+         }
     
         if(bS2Timer < nTastLong+1 || bSCounter < nTastLong+1){             /* Abfrage max. bis Taste lange gedrückt */
             if(bS2Timer == nTastShort){         /* Taste "kurz gedrückt" erkannt */
@@ -334,13 +360,11 @@
     } 
 
 void vTasteS3( void ){
-    if((pinS3 == 0 || abTxBuffer[0] == '-') && bMainState == enSchwellenwert){                             /* User-Taste gedrückt */
+    if((pinS3 == 0 || abTxBuffer[0] == '.') && bMainState == enSchwellenwert){                             /* User-Taste gedrückt */
     
-        do{
-            for(zaehler=0; zaehler<=250; zaehler++){                                      /*Zaehlen der Tastatur-Eingabe*/
-                if(abTxBuffer[zaehler] == 'a') bSCounter++;
-            }
-        } while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]);
+        for(zaehler=0; zaehler<=250; zaehler++){                                      /*Zaehlen der Tastatur-Eingabe*/
+             while(abTxBuffer[zaehler] == abTxBuffer[zaehler+1]) if(abTxBuffer[zaehler] == '.') bSCounter++;
+         }
     
         if(bS3Timer < nTastLong+1 || bSCounter < nTastLong+1){             /* Abfrage max. bis Taste lange gedrückt */
             if(bS3Timer == nTastShort){         /* Taste "kurz gedrückt" erkannt */