Published for Bernard
Dependencies: DebounceIn USBDevice mbed
main.cpp
- Committer:
- figlax
- Date:
- 2015-09-15
- Revision:
- 8:6f46e3682189
- Parent:
- 7:0b2dfff14976
File content as of revision 8:6f46e3682189:
#include "mbed.h" #include "DebounceIn.h" //must import cookbook debounce library into project DigitalOut myled(LED3); DigitalOut myled2(LED1); DigitalOut myled3(LED2); Serial pc(USBTX, USBRX); // tx, rx DigitalIn button(D3); DigitalIn button2(D4); DigitalIn button3(D5); DigitalIn button4(D6); DigitalIn button5(D7); DigitalIn button6(D8); DigitalIn button7(D9); DigitalIn button8(D10); DebounceIn toggle(D2); DebounceIn enter(D11); DigitalOut led1(D14); DigitalOut led2(D13); int main() { //initiate button modes to use internal pull up resistor button.mode(PullUp); button2.mode(PullUp); button3.mode(PullUp); button4.mode(PullUp); button5.mode(PullUp); button6.mode(PullUp); button7.mode(PullUp); button8.mode(PullUp); toggle.mode(PullUp); enter.mode(PullUp); wait(0.001); //initiate counters and other variables int enter_old=1; int enter_new; int toggle_old=1; int toggle_new; int button_counter=0; int button2_counter=0; int button3_counter=0; int button4_counter=0; int button5_counter=0; int button6_counter=0; int button7_counter=0; int button8_counter=0; int ec=0; int n=0; int t=0; int l=3; int l2=3; int l3=3; int l4=3; int l5=3; int l6=4; int l7=4; int l8=4; char* s[26] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; myled=1; myled3=1; myled2=0; wait(0.4); myled2=1; wait(0.4); myled2=0; wait(0.4); myled2=1; wait(0.4); myled2=0; wait(0.4); myled2=1; wait(0.4); myled=0; wait(0.4); myled=1; while(1) { enter_new = enter.read(); if((enter_new==0) && (enter_old==1)) { myled3= 0; wait(0.2); myled3= 1; n=1; if (button.read()==0) { pc.printf("%s", s[button_counter]); button_counter=0; n=0; } if (button2.read()==0) { button2_counter= button2_counter + l; pc.printf("%s", s[button2_counter]); button2_counter=0; n=0; } if (button3.read()==0) { button3_counter= button3_counter + l + l2; pc.printf("%s", s[button3_counter]); button3_counter=0; n=0; } if (button4.read()==0) { button4_counter= button4_counter + l + l2 + l3; pc.printf("%s", s[button4_counter]); button4_counter=0; n=0; } if (button5.read()==0) { button5_counter= button5_counter + l + l2 + l3 + l4; pc.printf("%s", s[button5_counter]); button5_counter=0; n=0; } if (button6.read()==0) { button6_counter= button6_counter + l + l2 + l3 + l4 + l5; pc.printf("%s", s[button6_counter]); button6_counter=0; n=0; } if (button7.read()==0) { button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6; pc.printf("%s", s[button7_counter]); button7_counter=0; n=0; } if (button8.read()==0) { button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7; pc.printf("%s", s[button8_counter]); button8_counter=0; n=0; } if (n==1) { if (ec>1){ pc.printf(" "); } ec=0; n=0; } button_counter=0; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=0; } enter_old= enter_new; toggle_new = toggle.read(); if ((toggle_new==0) && (toggle_old==1)) { t=1; myled= 0; wait(0.2); myled= 1; if (button.read()==0) { button_counter= button_counter + 1; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=0; if (button_counter==(l)) { button_counter=0; } t=0; ec=0; } if (button2.read()==0) { button_counter= 0; button2_counter= button2_counter + 1; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=0; if (button2_counter==(l2)) { button2_counter=0; } t=0; ec=0; } if (button3.read()==0) { button_counter= 0; button2_counter=0; button3_counter= button3_counter + 1; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=0; if (button3_counter==(l3)) { button3_counter=0; } t=0; ec=0; } if (button4.read()==0) { button_counter= 0; button2_counter=0; button3_counter=0; button4_counter= button4_counter + 1; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=0; if (button4_counter==(l4)) { button4_counter=0; } t=0; ec=0; } if (button5.read()==0) { button_counter= 0; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter= button5_counter + 1; button6_counter=0; button7_counter=0; button8_counter=0; if (button5_counter==(l5)) { button5_counter=0; } t=0; ec=0; } if (button6.read()==0) { button_counter= 0; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter= button6_counter + 1; button7_counter=0; button8_counter=0; if (button6_counter==(l6)) { button6_counter=0; } t=0; ec=0; } if (button7.read()==0) { button_counter= 0; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter= button7_counter + 1; button8_counter=0; if (button7_counter==(l7)) { button7_counter=0; } t=0; ec=0; } if (button8.read()==0) { button_counter= 0; button2_counter=0; button3_counter=0; button4_counter=0; button5_counter=0; button6_counter=0; button7_counter=0; button8_counter=button8_counter + 1; if (button8_counter==(l8)) { button8_counter=0; } t=0; ec=0; } if (t==1){ ec= ec+1; //unsure if all button counters should be set to zero here. } } toggle_old= toggle_new; } }