Letters in typing mode
Dependencies: SDFileSystem emic2 mbed-rtos mbed
Fork of BAT_Type_letter by
button.cpp
- Committer:
- aismail1997
- Date:
- 2017-12-04
- Revision:
- 42:bdb6f132a609
- Parent:
- 41:560ee7866781
File content as of revision 42:bdb6f132a609:
#include "mbed.h" #include "button.h" #include "emic2.h" //emic2 myTTS(p28, p27); //serial RX,TX pins to emic DigitalOut led4(LED4); DigitalOut led3(LED3); DigitalOut led2(LED2); // button constructor button::button(PwmOut servo, DigitalIn pb, int id) : servo(servo), pb(pb), state(0), press(0), id(id), type(0) {} // FUNCTIONS int button::getPress() { //pc.printf("%d", press); return press; } // move servo into the slot void button::moveServoIn() { //myled = 1; // rotate 90 degrees one way for(int i=4; i<=7; i++) { servo = i/100.0; wait(0.01); } //press = 1; switch (id) { case 1: led2 = 0; led3 = 0; led4 = 1; break; case 2: led2 = 0; led3 = 1; led4 = 0; break; case 3: led2 = 0; led3 = 1; led4 = 1; break; case 4: led2 = 1; led3 = 0; led4 = 0; break; case 5: led2 = 1; led3 = 0; led4 = 1; break; case 6: led2 = 1; led3 = 1; led4 = 0; break; } } // move servo out of the slot void button::moveServoOut() { //myled = 0; for(int i=7; i>4; i--) { servo = i/100.0; wait(0.01); } led2 = 0; led3 = 0; led4 = 0; } // get servo pin void button::setMode(int mymode) { type = mymode; } int button::updateState() { if (type == 0) { //myled = 0; // state 0 - button is up, pb = 0 if (pb == 0 && state == 3) { // nothing happens here, servo is still state = 0; } // state 1 - button is moving down, pb = 1 if (pb == 1 && state == 0) { moveServoIn(); state = 1; press = 1; } // state 2 - button is down, pb = 0 if (pb == 0 && state == 1) { // nothing happens here, servo is still state = 2; } // state 3 - button is moving up, pb = 1 if (pb == 1 && state == 2) { moveServoOut(); state = 3; press = 0; } } else { state = pb; press = pb; } return state; } void button::setup() { for(int i=0; i<=4; i++) { servo = i/100.0; wait(0.01); } }