Code for PanType by Christine Gregg

Dependencies:   DebounceIn USBDevice mbed

Fork of Text_input_alt by Interactive Device Design

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;
+
+
+
+
+
+
+
+
+
+    }
+}