Words in Typing mode
Dependencies: SDFileSystem emic2 mbed-rtos mbed
Fork of BAT_Type_word by
Revision 10:21268d8bf979, committed 2017-10-16
- Comitter:
- aismail1997
- Date:
- Mon Oct 16 15:45:17 2017 +0000
- Parent:
- 9:418a4437a693
- Child:
- 11:b302c71e300f
- Commit message:
- moved button code to a separate class
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/button.cpp Mon Oct 16 15:45:17 2017 +0000
@@ -0,0 +1,35 @@
+#include "mbed.h"
+#include "button.h"
+
+button::button(PwmOut servo, DigitalIn pb)
+ : servo(servo), pb(pb) {}
+
+// FUNCTIONS
+PwmOut button::getServoPin()
+{
+ return servo;
+}
+
+int button::getState()
+{
+ return state;
+}
+
+void button::moveServoIn()
+{
+ //myled = 1;
+ // rotate 90 degrees one way
+ for(int i=3; i<=7; i++) {
+ servo = i/100.0;
+ wait(0.01);
+ }
+}
+
+void button::moveServoOut()
+{
+ //myled = 0;
+ for(int i=7; i>3; i--) {
+ servo = i/100.0;
+ wait(0.01);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/button.h Mon Oct 16 15:45:17 2017 +0000
@@ -0,0 +1,19 @@
+#include "mbed.h"
+
+class button {
+
+private:
+ PwmOut servo;
+ DigitalIn pb;
+ int state;
+
+public:
+ // constructors
+ button();
+ button(PwmOut servo, DigitalIn pb);
+ // functions
+ PwmOut getServoPin();
+ int getState();
+ void moveServoIn();
+ void moveServoOut();
+};
\ No newline at end of file
--- a/main.cpp Fri Oct 13 15:48:24 2017 +0000
+++ b/main.cpp Mon Oct 16 15:45:17 2017 +0000
@@ -2,6 +2,7 @@
#include "rtos.h"
#include "wave_player.h"
#include "SDFileSystem.h"
+#include "button.h"
PwmOut myservo(p21);
DigitalIn pb1 (p20);
@@ -11,34 +12,15 @@
SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
AnalogOut DACout(p26);
wave_player waver(&DACout);
+button button1(myservo, pb1);
// add start, mode, reset buttons
int start = 0;
int submit = 0;
+// FIX THIS: button up: state = 2, button halfway: state = 0; button down: state = 1
+int state = 2;
// FUNCTIONS
-
-void moveServoIn(PwmOut servo, DigitalIn pb)
-{
- while(pb == 1)
- //myled = 1;
- // rotate 90 degrees one way
- for(int i=3; i<=7; i++) {
- servo = i/100.0;
- wait(0.01);
- }
-}
-
-void moveServoOut(PwmOut servo, DigitalIn pb)
-{
- while(pb == 1)
- //myled = 0;
- for(int i=7; i>3; i--) {
- servo = i/100.0;
- wait(0.01);
- }
-}
-
void playSound(wave_player waver)
{
FILE *wave_file;
@@ -47,13 +29,19 @@
fclose(wave_file);
}
-
// THREADS
-
-
void button_thread()
{
-
+ // button was up and is moving down, move servo in
+ if (pb1 == 1 && state == 2) {
+ button1.moveServoIn();
+ state = 1;
+ }
+ // button was down and is being pushed again, move servo out
+ if (pb1 == 1 && state == 1) {
+ button1.moveServoOut();
+ state = 2;
+ }
}
void submit_thread()
@@ -72,12 +60,11 @@
int main()
{
// SETUP
- // button up: state = 0, button halfway: state = 1; button down: state = 2
- int state = 2;
// pull up the pushbutton to prevent bouncing
pb1.mode(PullUp);
wait(.001);
// servo begins at 30 degrees
+ // replace with a button setup function
for(int i=0; i<=3; i++) {
myservo = i/100.0;
wait(0.01);
@@ -88,38 +75,23 @@
// start threads for reset, mode, start
Thread t1(start_thread);
-
// setup SDcard and Speaker
-
-
+
// when started
while (start == 0) {}
Thread t2(button_thread);
- Thread t3(submit_thread);
+
+ //Thread t3(submit_thread);
// when submitted
- while (submit == 0) {}
-
+ //while (submit == 0) {}
+
// start button threads and submit thread
// if submit close button threads and submit thread
// check result, speaker result
// save results
-
-
-
- // Servo code
- if (pb1 == 1 && state == 2) {
- moveServoIn(myservo, pb1);
- state = 1;
- }
- // rotate 90 degrees other way
- if (pb1 == 1 && state == 1) {
- moveServoOut(myservo, pb1);
- state = 2;
- }
-
// SD card code
// speaker code
