![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
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
main.cpp@1:6b9c38f0638d, 2015-09-14 (annotated)
- 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?
User | Revision | Line number | New 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 | // } |