Code for PanType by Christine Gregg
Dependencies: DebounceIn USBDevice mbed
Fork of Text_input_alt by
Diff: main.cpp
- Revision:
- 0:8e978e353ded
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Sep 22 06:41:14 2014 +0000 @@ -0,0 +1,442 @@ +#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 +DebounceIn button(D3); +DebounceIn button2(D4); +DebounceIn button3(D5); +DebounceIn button4(D6); +DebounceIn button5(D7); +DebounceIn button6(D8); +DebounceIn button7(D9); +DebounceIn button8(D10); +DebounceIn toggle(D2); +DebounceIn enter(D11); + + +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_old=1; + int button_new; + int button2_old=1; + int button2_new; + int button3_old=1; + int button3_new; + int button4_old=1; + int button4_new; + int button5_old=1; + int button5_new; + int button6_old=1; + int button6_new; + int button7_old=1; + int button7_new; + int button8_old=1; + int button8_new; + + int b1=0; + int b2=0; + int b3=0; + int b4=0; + int b5=0; + int b6=0; + int b7=0; + int b8=0; + + 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 l=3; + int l2=3; + int l3=3; + int l4=3; + int l5=3; + int l6=3; + 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; + + +//start main program + + while(1) { + enter_new = enter.read(); + if((enter_new==0) && (enter_old==1)) { + myled3= 0; + wait(0.2); + myled3= 1; + + if (b1>0) { + button_counter= button_counter - 1; + pc.printf("%s", s[button_counter]); + button_counter=0; + + } + if (b2>0) { + button2_counter= button2_counter + l - 1; + pc.printf("%s", s[button2_counter]); + button2_counter=0; + + } + if (b3>0) { + button3_counter= button3_counter + l + l2 - 1; + pc.printf("%s", s[button3_counter]); + button3_counter=0; + + } + if (b4>0) { + button4_counter= button4_counter + l + l2 + l3 - 1; + pc.printf("%s", s[button4_counter]); + button4_counter=0; + + } + if (b5>0) { + button5_counter= button5_counter + l + l2 + l3 + l4 - 1; + pc.printf("%s", s[button5_counter]); + button5_counter=0; + + } + if (b6>0) { + button6_counter= button6_counter + l + l2 + l3 + l4 + l5 - 1; + pc.printf("%s", s[button6_counter]); + button6_counter=0; + + } + if (b7>0) { + button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6 - 1; + pc.printf("%s", s[button7_counter]); + button7_counter=0; + + } + if (b8>0) { + button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7 - 1; + pc.printf("%s", s[button8_counter]); + button8_counter=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; + + b1=0; + b2=0; + b3=0; + b4=0; + b5=0; + b6=0; + b7=0; + b8=0; + } + enter_old= enter_new; + + + toggle_new = toggle.read(); + if ((toggle_new==0) && (toggle_old==1)) { + + + pc.printf(" "); + } + toggle_old= toggle_new; + + button_new=button.read(); + if ((button_old==0)&&(button_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + + b1=1; + b2=0; + b3=0; + b4=0; + b5=0; + b6=0; + b7=0; + b8=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 + 1)) { + button_counter=1; + } + + } + button_old=button_new; + + button2_new=button2.read(); + if ((button2_old==0)&&(button2_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=1; + b3=0; + b4=0; + b5=0; + b6=0; + b7=0; + b8=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 + 1)) { + button2_counter=1; + } + + } + button2_old=button2_new; + + + button3_new=button3.read(); + if ((button3_old==0)&&(button3_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=1; + b4=0; + b5=0; + b6=0; + b7=0; + b8=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 + 1)) { + button3_counter=1; + } + + } + button3_old=button3_new; + + button4_new=button4.read(); + if ((button4_old==0)&&(button4_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=0; + b4=1; + b5=0; + b6=0; + b7=0; + b8=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 + 1)) { + button4_counter=1; + } + + } + button4_old=button4_new; + + button5_new=button5.read(); + if ((button5_old==0)&&(button5_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=0; + b4=0; + b5=1; + b6=0; + b7=0; + b8=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 + 1)) { + button5_counter=1; + } + + } + button5_old=button5_new; + + + button6_new=button6.read(); + if ((button6_old==0)&&(button6_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=0; + b4=0; + b5=0; + b6=1; + b7=0; + b8=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 + 1)) { + button6_counter=1; + } + + } + button6_old=button6_new; + + + button7_new=button7.read(); + if ((button7_old==0)&&(button7_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=0; + b4=0; + b5=0; + b6=0; + b7=1; + b8=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 + 1)) { + button7_counter=1; + } + + } + button7_old=button7_new; + + button8_new=button8.read(); + if ((button8_old==0)&&(button8_new==1)) { + myled= 0; + wait(0.2); + myled= 1; + b1=0; + b2=0; + b3=0; + b4=0; + b5=0; + b6=0; + b7=0; + b8=1; + 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 + 1)) { + button8_counter=1; + } + + } + button8_old=button8_new; + + + + + + + + + + } +}