Working reset, flipped logic

Dependencies:   SDFileSystem emic2 mbed-rtos mbed

Fork of BAT_senior_design_Nhi by BAT

Revision:
19:ceac47be2e64
Parent:
18:d14bf57f435b
Child:
21:c5df903f068a
--- a/main.cpp	Fri Oct 27 13:34:49 2017 +0000
+++ b/main.cpp	Fri Oct 27 15:15:00 2017 +0000
@@ -3,6 +3,7 @@
 #include "wave_player.h"
 #include "SDFileSystem.h"
 #include "button.h"
+#include "buttonArray.h"
 
 // DEFINE I/O
 PwmOut myservo(p21);
@@ -34,6 +35,8 @@
 button button5(myservo5, pb5);
 button button6(myservo6, pb6);
 
+buttonArray buttonarr(button1, button2, button3, button4, button5, button6);
+
 // INITIALIZE VARIABLES
 // add mode, reset buttons
 int start = 0;
@@ -65,69 +68,15 @@
 void button_thread()
 {
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb1 == 0 && state == 3) {
-            // nothing happens here, servo is still
-            state = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb1 == 1 && state == 0) {
-            button1.moveServoIn();
-            state = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb1 == 0 && state == 1) {
-            // nothing happens here, servo is still
-            state = 2;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb1 == 1 && state == 2) {
-            button1.moveServoOut();
-            state = 3;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb1 = 1 && state == 2) {
-            count++;
-        }*/
+        state = button1.updateState();
+        Thread::wait(100); // wait till thread is done
     }
 }
 
 void button2_thread()
 {
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb2 == 0 && state2 == 3) {
-            // nothing happens here, servo is still
-            state2 = 0;
-            //led3 = 0;
-            //led4 = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb2 == 1 && state2 == 0) {
-            button2.moveServoIn();
-            state2 = 1;
-            //led3 = 0;
-            //led4 = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb2 == 0 && state2 == 1) {
-            // nothing happens here, servo is still
-            state2 = 2;
-            //led3 = 1;
-            //led4 = 0;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb2 == 1 && state2 == 2) {
-            button2.moveServoOut();
-            state2 = 3;
-            //led3 = 1;
-            //led4 = 1;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb2 = 1 && state2 == 2) {
-            
-        }*/
-
+        state2 = button2.updateState();
         Thread::wait(100); // wait till thread is done
     }
 }
@@ -136,31 +85,8 @@
 void button3_thread()
 {
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb3 == 0 && state3 == 3) {
-            // nothing happens here, servo is still
-            state3 = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb3 == 1 && state3 == 0) {
-            button3.moveServoIn();
-            state3 = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb3 == 0 && state3 == 1) {
-            // nothing happens here, servo is still
-            state3 = 2;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb3 == 1 && state3 == 2) {
-            button3.moveServoOut();
-            state3 = 3;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb3 = 1 && state3 == 2) {
-            
-        }*/
-
+        state3 = button3.updateState();
+        Thread::wait(100); // wait till thread is done
     }
 }
 
@@ -168,64 +94,17 @@
 void button4_thread()
 {
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb4 == 0 && state4 == 3) {
-            // nothing happens here, servo is still
-            state4 = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb4 == 1 && state4 == 0) {
-            button4.moveServoIn();
-            state4 = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb4 == 0 && state4 == 1) {
-            // nothing happens here, servo is still
-            state4 = 2;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb4 == 1 && state4 == 2) {
-            button4.moveServoOut();
-            state4 = 3;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb4 = 1 && state4 == 2) {
-            
-        }*/
-
+        state4 = button4.updateState();
+        Thread::wait(100); // wait till thread is done
     }
 }
 
 // thread for the custom button
 void button5_thread()
 {
-
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb5 == 0 && state5 == 3) {
-            // nothing happens here, servo is still
-            state5 = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb5 == 1 && state5 == 0) {
-            button5.moveServoIn();
-            state5 = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb5 == 0 && state5 == 1) {
-            // nothing happens here, servo is still
-            state5 = 2;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb5 == 1 && state5 == 2) {
-            button5.moveServoOut();
-            state5 = 3;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb5 = 1 && state5 == 2) {
-            
-        }*/
-
+        state5 = button5.updateState();
+        Thread::wait(100); // wait till thread is done
     }
 }
 
@@ -233,31 +112,8 @@
 void button6_thread()
 {
     while(true) {
-        // state 0 - button is up, pb = 0
-        if (pb6 == 0 && state6 == 3) {
-            // nothing happens here, servo is still
-            state6 = 0;
-        }
-        // state 1 - button is moving down, pb = 1
-        if (pb6 == 1 && state6 == 0) {
-            button6.moveServoIn();
-            state6 = 1;
-        }
-        // state 2 - button is down, pb = 0
-        if (pb6 == 0 && state6 == 1) {
-            // nothing happens here, servo is still
-            state6 = 2;
-        }
-        // state 3 - button is moving up, pb = 1
-        if (pb6 == 1 && state6 == 2) {
-            button6.moveServoOut();
-            state6 = 3;
-        }
-        // state 4 - handle debouncing while button is down
-        /*if (pb6 = 1 && state6 == 2) {
-            
-        }*/
-
+        state6 = button6.updateState();
+        Thread::wait(100); // wait till thread is done
     }
 }
 
@@ -299,17 +155,17 @@
         myservo2 = i/100.0;
         wait(0.01);
     }
-    
+
     for(int i=0; i<=3; i++) {
         myservo3 = i/100.0;
         wait(0.01);
     }
-    
+
     for(int i=0; i<=3; i++) {
         myservo4 = i/100.0;
         wait(0.01);
     }
-    
+
     for(int i=0; i<=3; i++) {
         myservo5 = i/100.0;
         wait(0.01);
@@ -319,7 +175,7 @@
         myservo6 = i/100.0;
         wait(0.01);
     }
-    
+
     //led1 = 1;
     //led2 = 1;
     Thread t1(button_thread);
@@ -363,7 +219,7 @@
     //if (linpot < 0.5) {
     //float potval = linpot;
     //pc.printf("linear pot: %f\n", potval);
-    
+
     // MAIN THREAD
     while(true) {
         Thread::wait(500); // wait till thread is done