Fork of original senior design repo
Dependencies: SDFileSystem mbed-rtos mbed wave_player emic2
Fork of BAT_senior_design by
Diff: main.cpp
- Revision:
- 18:ceac47be2e64
- Parent:
- 17:d14bf57f435b
- Child:
- 20: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
