Classic multi-tap touch device with enter key. Allows for multiple keys to be entered at once.

Dependencies:   DebouncedEdgeIn USBDevice mbed

Fork of idd_hw2_martincowell_bicyclehid by Interactive Device Design

Committer:
JMarquis
Date:
Mon Sep 14 16:32:56 2015 +0000
Revision:
1:6b9c38f0638d
Parent:
0:913f85486ace
Classic multi-tap touch device with enter key. Allows for multiple keys to be entered at once.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
martincowell 0:913f85486ace 1 #include "mbed.h"
martincowell 0:913f85486ace 2 #include "DebouncedEdgeIn.h"
martincowell 0:913f85486ace 3 #include "USBMouseKeyboard.h"
JMarquis 1:6b9c38f0638d 4 #include <iostream>
JMarquis 1:6b9c38f0638d 5 #include <stdlib.h>
JMarquis 1:6b9c38f0638d 6 #include <iostream>
JMarquis 1:6b9c38f0638d 7 #include <time.h>
JMarquis 1:6b9c38f0638d 8 int x = 0;
JMarquis 1:6b9c38f0638d 9 int y = 0;
JMarquis 1:6b9c38f0638d 10 int z = 0;
JMarquis 1:6b9c38f0638d 11 int q = 0;
JMarquis 1:6b9c38f0638d 12 int s = 0;
JMarquis 1:6b9c38f0638d 13 int e = 0;
JMarquis 1:6b9c38f0638d 14 int r = 0;
JMarquis 1:6b9c38f0638d 15 int u = 0;
martincowell 0:913f85486ace 16
JMarquis 1:6b9c38f0638d 17
JMarquis 1:6b9c38f0638d 18
JMarquis 1:6b9c38f0638d 19
JMarquis 1:6b9c38f0638d 20 DebouncedEdgeIn b0(D12);
JMarquis 1:6b9c38f0638d 21 DebouncedEdgeIn b1(D11);
JMarquis 1:6b9c38f0638d 22 DebouncedEdgeIn b2(D10);
JMarquis 1:6b9c38f0638d 23 DebouncedEdgeIn b3(D9);
JMarquis 1:6b9c38f0638d 24 DebouncedEdgeIn b4(D8);
JMarquis 1:6b9c38f0638d 25 DebouncedEdgeIn b5(D7);
JMarquis 1:6b9c38f0638d 26 DebouncedEdgeIn b6(D6);
JMarquis 1:6b9c38f0638d 27 DebouncedEdgeIn b7(D5);
JMarquis 1:6b9c38f0638d 28 DebouncedEdgeIn b8(D4);
JMarquis 1:6b9c38f0638d 29 DebouncedEdgeIn b9(D3);
martincowell 0:913f85486ace 30
martincowell 0:913f85486ace 31 // SPST Pushbutton demo using internal PullUp function
martincowell 0:913f85486ace 32 // no external PullUp resistor needed
martincowell 0:913f85486ace 33 // Pushbutton from D2 to GND.
martincowell 0:913f85486ace 34 Serial pc(USBTX, USBRX);
martincowell 0:913f85486ace 35 //To output in terminal:
martincowell 0:913f85486ace 36 //ls /dev/tty.usbmodem*
martincowell 0:913f85486ace 37 //determine port number XXXX for input below
martincowell 0:913f85486ace 38 //screen /dev/tty.usbmodemXXXX 9600
martincowell 0:913f85486ace 39
martincowell 0:913f85486ace 40 //USBMouseKeyboard
martincowell 0:913f85486ace 41 //USBMouseKeyboard key_mouse;
JMarquis 1:6b9c38f0638d 42 //if(b0.read()&&b1.read()){
JMarquis 1:6b9c38f0638d 43 // pc.printf("a");
martincowell 0:913f85486ace 44 //key_mouse.printf("a");
JMarquis 1:6b9c38f0638d 45 //}
JMarquis 1:6b9c38f0638d 46
JMarquis 1:6b9c38f0638d 47
martincowell 0:913f85486ace 48
JMarquis 1:6b9c38f0638d 49
martincowell 0:913f85486ace 50
JMarquis 1:6b9c38f0638d 51
JMarquis 1:6b9c38f0638d 52
JMarquis 1:6b9c38f0638d 53 void a(){
JMarquis 1:6b9c38f0638d 54 x = x+1;
martincowell 0:913f85486ace 55 }
martincowell 0:913f85486ace 56 void d(){
JMarquis 1:6b9c38f0638d 57 y = y+1;
JMarquis 1:6b9c38f0638d 58 }
JMarquis 1:6b9c38f0638d 59 void g(){
JMarquis 1:6b9c38f0638d 60 z = z+1;
martincowell 0:913f85486ace 61 }
JMarquis 1:6b9c38f0638d 62 void j(){
JMarquis 1:6b9c38f0638d 63 q = q+1;
martincowell 0:913f85486ace 64 }
JMarquis 1:6b9c38f0638d 65 void m(){
JMarquis 1:6b9c38f0638d 66 s= s+1;
JMarquis 1:6b9c38f0638d 67 }
JMarquis 1:6b9c38f0638d 68 void p(){
JMarquis 1:6b9c38f0638d 69 e = e+1;
martincowell 0:913f85486ace 70 }
JMarquis 1:6b9c38f0638d 71 void t(){
JMarquis 1:6b9c38f0638d 72 r = r+1;
JMarquis 1:6b9c38f0638d 73 }
JMarquis 1:6b9c38f0638d 74 void w(){
JMarquis 1:6b9c38f0638d 75 u = u+1;
martincowell 0:913f85486ace 76 }
martincowell 0:913f85486ace 77 void space(){
JMarquis 1:6b9c38f0638d 78 pc.printf(" ");
JMarquis 1:6b9c38f0638d 79 }
JMarquis 1:6b9c38f0638d 80 void del(){
JMarquis 1:6b9c38f0638d 81 if (x == 1) {
JMarquis 1:6b9c38f0638d 82 pc.printf("a");
JMarquis 1:6b9c38f0638d 83 }
JMarquis 1:6b9c38f0638d 84 if (x == 2) {
JMarquis 1:6b9c38f0638d 85 pc.printf("b");
JMarquis 1:6b9c38f0638d 86 }
JMarquis 1:6b9c38f0638d 87 if (x == 3) {
JMarquis 1:6b9c38f0638d 88 pc.printf("c");
JMarquis 1:6b9c38f0638d 89 }
JMarquis 1:6b9c38f0638d 90 x = 0;
JMarquis 1:6b9c38f0638d 91 if (y == 1) {
JMarquis 1:6b9c38f0638d 92 pc.printf("d");
JMarquis 1:6b9c38f0638d 93 }
JMarquis 1:6b9c38f0638d 94 if (y == 2) {
JMarquis 1:6b9c38f0638d 95 pc.printf("e");
JMarquis 1:6b9c38f0638d 96 }
JMarquis 1:6b9c38f0638d 97 if (y == 3) {
JMarquis 1:6b9c38f0638d 98 pc.printf("f");
JMarquis 1:6b9c38f0638d 99 }
JMarquis 1:6b9c38f0638d 100 y = 0;
JMarquis 1:6b9c38f0638d 101 if (z == 1) {
JMarquis 1:6b9c38f0638d 102 pc.printf("g");
JMarquis 1:6b9c38f0638d 103 }
JMarquis 1:6b9c38f0638d 104 if (z == 2) {
JMarquis 1:6b9c38f0638d 105 pc.printf("h");
JMarquis 1:6b9c38f0638d 106 }
JMarquis 1:6b9c38f0638d 107 if (z == 3) {
JMarquis 1:6b9c38f0638d 108 pc.printf("i");
JMarquis 1:6b9c38f0638d 109 }
JMarquis 1:6b9c38f0638d 110 z = 0;
JMarquis 1:6b9c38f0638d 111 if (q == 1) {
JMarquis 1:6b9c38f0638d 112 pc.printf("j");
JMarquis 1:6b9c38f0638d 113 }
JMarquis 1:6b9c38f0638d 114 if (q == 2) {
JMarquis 1:6b9c38f0638d 115 pc.printf("k");
JMarquis 1:6b9c38f0638d 116 }
JMarquis 1:6b9c38f0638d 117 if (q == 3) {
JMarquis 1:6b9c38f0638d 118 pc.printf("l");
JMarquis 1:6b9c38f0638d 119 }
JMarquis 1:6b9c38f0638d 120 q = 0;
JMarquis 1:6b9c38f0638d 121 if (s == 1) {
JMarquis 1:6b9c38f0638d 122 pc.printf("m");
JMarquis 1:6b9c38f0638d 123 }
JMarquis 1:6b9c38f0638d 124 if (s == 2) {
JMarquis 1:6b9c38f0638d 125 pc.printf("n");
JMarquis 1:6b9c38f0638d 126 }
JMarquis 1:6b9c38f0638d 127 if (s == 3) {
JMarquis 1:6b9c38f0638d 128 pc.printf("o");
JMarquis 1:6b9c38f0638d 129 }
JMarquis 1:6b9c38f0638d 130 s = 0;
JMarquis 1:6b9c38f0638d 131 if (e == 1) {
JMarquis 1:6b9c38f0638d 132 pc.printf("p");
JMarquis 1:6b9c38f0638d 133 }
JMarquis 1:6b9c38f0638d 134 if (e == 2) {
JMarquis 1:6b9c38f0638d 135 pc.printf("q");
JMarquis 1:6b9c38f0638d 136 }
JMarquis 1:6b9c38f0638d 137 if (e == 3) {
JMarquis 1:6b9c38f0638d 138 pc.printf("r");
JMarquis 1:6b9c38f0638d 139 }
JMarquis 1:6b9c38f0638d 140 if (e == 4) {
JMarquis 1:6b9c38f0638d 141 pc.printf("s");
JMarquis 1:6b9c38f0638d 142 }
JMarquis 1:6b9c38f0638d 143 e = 0;
JMarquis 1:6b9c38f0638d 144 if (r == 1) {
JMarquis 1:6b9c38f0638d 145 pc.printf("t");
JMarquis 1:6b9c38f0638d 146 }
JMarquis 1:6b9c38f0638d 147 if (r == 2) {
JMarquis 1:6b9c38f0638d 148 pc.printf("u");
JMarquis 1:6b9c38f0638d 149 }
JMarquis 1:6b9c38f0638d 150 if (r == 3) {
JMarquis 1:6b9c38f0638d 151 pc.printf("v");
JMarquis 1:6b9c38f0638d 152 }
JMarquis 1:6b9c38f0638d 153 r = 0;
JMarquis 1:6b9c38f0638d 154 if (u == 1) {
JMarquis 1:6b9c38f0638d 155 pc.printf("w");
JMarquis 1:6b9c38f0638d 156 }
JMarquis 1:6b9c38f0638d 157 if (u == 2) {
JMarquis 1:6b9c38f0638d 158 pc.printf("x");
JMarquis 1:6b9c38f0638d 159 }
JMarquis 1:6b9c38f0638d 160 if (u == 3) {
JMarquis 1:6b9c38f0638d 161 pc.printf("y");
JMarquis 1:6b9c38f0638d 162 }
JMarquis 1:6b9c38f0638d 163 if (u == 4) {
JMarquis 1:6b9c38f0638d 164 pc.printf("z");
JMarquis 1:6b9c38f0638d 165 }
JMarquis 1:6b9c38f0638d 166 u = 0;
JMarquis 1:6b9c38f0638d 167
martincowell 0:913f85486ace 168 }
martincowell 0:913f85486ace 169
martincowell 0:913f85486ace 170 int main() {
JMarquis 1:6b9c38f0638d 171
martincowell 0:913f85486ace 172 b0.mode(PullUp);
martincowell 0:913f85486ace 173 b1.mode(PullUp);
martincowell 0:913f85486ace 174 b2.mode(PullUp);
martincowell 0:913f85486ace 175 b3.mode(PullUp);
martincowell 0:913f85486ace 176 b4.mode(PullUp);
martincowell 0:913f85486ace 177 b5.mode(PullUp);
martincowell 0:913f85486ace 178 b6.mode(PullUp);
martincowell 0:913f85486ace 179 b7.mode(PullUp);
martincowell 0:913f85486ace 180 b8.mode(PullUp);
martincowell 0:913f85486ace 181 b9.mode(PullUp);
martincowell 0:913f85486ace 182
JMarquis 1:6b9c38f0638d 183 b1.fall(&a);
JMarquis 1:6b9c38f0638d 184 b2.fall(&d);
JMarquis 1:6b9c38f0638d 185 b3.fall(&g);
JMarquis 1:6b9c38f0638d 186 b4.fall(&j);
JMarquis 1:6b9c38f0638d 187 b5.fall(&m);
JMarquis 1:6b9c38f0638d 188 b6.fall(&p);
JMarquis 1:6b9c38f0638d 189 b7.fall(&t);
JMarquis 1:6b9c38f0638d 190 b8.fall(&w);
martincowell 0:913f85486ace 191 b9.fall(&space);
JMarquis 1:6b9c38f0638d 192 b0.fall(&del);
JMarquis 1:6b9c38f0638d 193 // cout<<x<<endl;
JMarquis 1:6b9c38f0638d 194
martincowell 0:913f85486ace 195 pc.printf("Initialized\r\n");
martincowell 0:913f85486ace 196 //key_mouse.printf("Initialized\r\n");
JMarquis 1:6b9c38f0638d 197 while(1) {
JMarquis 1:6b9c38f0638d 198
JMarquis 1:6b9c38f0638d 199
martincowell 0:913f85486ace 200 // }
martincowell 0:913f85486ace 201 }
JMarquis 1:6b9c38f0638d 202 }
JMarquis 1:6b9c38f0638d 203
JMarquis 1:6b9c38f0638d 204
JMarquis 1:6b9c38f0638d 205
JMarquis 1:6b9c38f0638d 206 // std::chrono::seconds interval( 10 ) ; // 10 seconds
JMarquis 1:6b9c38f0638d 207 // for( int i = 0 ; i < 10 ; ++i )
JMarquis 1:6b9c38f0638d 208 // {
JMarquis 1:6b9c38f0638d 209 // std::cout << "tick!\n" << std::flush ;
JMarquis 1:6b9c38f0638d 210 // std::this_thread::sleep_for( interval ) ;
JMarquis 1:6b9c38f0638d 211 // }