Published for Bernard

Dependencies:   DebounceIn USBDevice mbed

Committer:
figlax
Date:
Tue Sep 15 21:02:08 2015 +0000
Revision:
8:6f46e3682189
Parent:
7:0b2dfff14976
Published for Bernard

Who changed what in which revision?

UserRevisionLine numberNew contents of line
figlax 0:e2860e845207 1 #include "mbed.h"
figlax 1:38a2dd5eed44 2 #include "DebounceIn.h"
figlax 1:38a2dd5eed44 3 //must import cookbook debounce library into project
figlax 0:e2860e845207 4
figlax 1:38a2dd5eed44 5 DigitalOut myled(LED3);
figlax 5:3b729656a1ff 6
figlax 5:3b729656a1ff 7 DigitalOut myled2(LED1);
figlax 5:3b729656a1ff 8
figlax 5:3b729656a1ff 9 DigitalOut myled3(LED2);
figlax 5:3b729656a1ff 10
figlax 0:e2860e845207 11 Serial pc(USBTX, USBRX); // tx, rx
figlax 8:6f46e3682189 12 DigitalIn button(D3);
figlax 8:6f46e3682189 13 DigitalIn button2(D4);
figlax 8:6f46e3682189 14 DigitalIn button3(D5);
figlax 8:6f46e3682189 15 DigitalIn button4(D6);
figlax 8:6f46e3682189 16 DigitalIn button5(D7);
figlax 8:6f46e3682189 17 DigitalIn button6(D8);
figlax 8:6f46e3682189 18 DigitalIn button7(D9);
figlax 8:6f46e3682189 19 DigitalIn button8(D10);
figlax 8:6f46e3682189 20 DebounceIn toggle(D2);
figlax 5:3b729656a1ff 21 DebounceIn enter(D11);
figlax 8:6f46e3682189 22 DigitalOut led1(D14);
figlax 8:6f46e3682189 23 DigitalOut led2(D13);
figlax 0:e2860e845207 24
figlax 0:e2860e845207 25 int main() {
figlax 2:fcc04766c285 26
figlax 2:fcc04766c285 27 //initiate button modes to use internal pull up resistor
figlax 0:e2860e845207 28 button.mode(PullUp);
figlax 1:38a2dd5eed44 29 button2.mode(PullUp);
figlax 1:38a2dd5eed44 30 button3.mode(PullUp);
figlax 2:fcc04766c285 31 button4.mode(PullUp);
figlax 2:fcc04766c285 32 button5.mode(PullUp);
figlax 5:3b729656a1ff 33 button6.mode(PullUp);
figlax 5:3b729656a1ff 34 button7.mode(PullUp);
figlax 5:3b729656a1ff 35 button8.mode(PullUp);
figlax 2:fcc04766c285 36 toggle.mode(PullUp);
figlax 1:38a2dd5eed44 37 enter.mode(PullUp);
figlax 0:e2860e845207 38
figlax 1:38a2dd5eed44 39 wait(0.001);
figlax 1:38a2dd5eed44 40
figlax 2:fcc04766c285 41 //initiate counters and other variables
figlax 2:fcc04766c285 42
figlax 2:fcc04766c285 43 int enter_old=1;
figlax 2:fcc04766c285 44 int enter_new;
figlax 2:fcc04766c285 45 int toggle_old=1;
figlax 2:fcc04766c285 46 int toggle_new;
figlax 2:fcc04766c285 47 int button_counter=0;
figlax 2:fcc04766c285 48 int button2_counter=0;
figlax 2:fcc04766c285 49 int button3_counter=0;
figlax 2:fcc04766c285 50 int button4_counter=0;
figlax 2:fcc04766c285 51 int button5_counter=0;
figlax 5:3b729656a1ff 52 int button6_counter=0;
figlax 5:3b729656a1ff 53 int button7_counter=0;
figlax 5:3b729656a1ff 54 int button8_counter=0;
figlax 8:6f46e3682189 55 int ec=0;
figlax 5:3b729656a1ff 56
figlax 6:1ff2b519fcc4 57 int n=0;
figlax 8:6f46e3682189 58 int t=0;
figlax 6:1ff2b519fcc4 59
figlax 5:3b729656a1ff 60 int l=3;
figlax 5:3b729656a1ff 61 int l2=3;
figlax 5:3b729656a1ff 62 int l3=3;
figlax 5:3b729656a1ff 63 int l4=3;
figlax 5:3b729656a1ff 64 int l5=3;
figlax 5:3b729656a1ff 65 int l6=4;
figlax 5:3b729656a1ff 66 int l7=4;
figlax 5:3b729656a1ff 67 int l8=4;
figlax 2:fcc04766c285 68
figlax 1:38a2dd5eed44 69
figlax 5:3b729656a1ff 70 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"};
figlax 5:3b729656a1ff 71
figlax 5:3b729656a1ff 72 myled=1;
figlax 5:3b729656a1ff 73 myled3=1;
figlax 5:3b729656a1ff 74
figlax 5:3b729656a1ff 75 myled2=0;
figlax 5:3b729656a1ff 76 wait(0.4);
figlax 5:3b729656a1ff 77 myled2=1;
figlax 5:3b729656a1ff 78 wait(0.4);
figlax 5:3b729656a1ff 79 myled2=0;
figlax 5:3b729656a1ff 80 wait(0.4);
figlax 5:3b729656a1ff 81 myled2=1;
figlax 5:3b729656a1ff 82 wait(0.4);
figlax 5:3b729656a1ff 83 myled2=0;
figlax 5:3b729656a1ff 84 wait(0.4);
figlax 5:3b729656a1ff 85 myled2=1;
figlax 5:3b729656a1ff 86 wait(0.4);
figlax 5:3b729656a1ff 87
figlax 1:38a2dd5eed44 88 myled=0;
figlax 5:3b729656a1ff 89 wait(0.4);
figlax 5:3b729656a1ff 90 myled=1;
figlax 0:e2860e845207 91
figlax 8:6f46e3682189 92
figlax 8:6f46e3682189 93
figlax 5:3b729656a1ff 94
figlax 0:e2860e845207 95 while(1) {
figlax 2:fcc04766c285 96 enter_new = enter.read();
figlax 2:fcc04766c285 97 if((enter_new==0) && (enter_old==1)) {
figlax 5:3b729656a1ff 98 myled3= 0;
figlax 5:3b729656a1ff 99 wait(0.2);
figlax 5:3b729656a1ff 100 myled3= 1;
figlax 6:1ff2b519fcc4 101 n=1;
figlax 2:fcc04766c285 102 if (button.read()==0) {
figlax 5:3b729656a1ff 103 pc.printf("%s", s[button_counter]);
figlax 5:3b729656a1ff 104 button_counter=0;
figlax 6:1ff2b519fcc4 105 n=0;
figlax 2:fcc04766c285 106 }
figlax 2:fcc04766c285 107 if (button2.read()==0) {
figlax 5:3b729656a1ff 108 button2_counter= button2_counter + l;
figlax 5:3b729656a1ff 109 pc.printf("%s", s[button2_counter]);
figlax 5:3b729656a1ff 110 button2_counter=0;
figlax 6:1ff2b519fcc4 111 n=0;
figlax 2:fcc04766c285 112 }
figlax 2:fcc04766c285 113 if (button3.read()==0) {
figlax 5:3b729656a1ff 114 button3_counter= button3_counter + l + l2;
figlax 5:3b729656a1ff 115 pc.printf("%s", s[button3_counter]);
figlax 5:3b729656a1ff 116 button3_counter=0;
figlax 6:1ff2b519fcc4 117 n=0;
figlax 2:fcc04766c285 118 }
figlax 2:fcc04766c285 119 if (button4.read()==0) {
figlax 5:3b729656a1ff 120 button4_counter= button4_counter + l + l2 + l3;
figlax 5:3b729656a1ff 121 pc.printf("%s", s[button4_counter]);
figlax 5:3b729656a1ff 122 button4_counter=0;
figlax 6:1ff2b519fcc4 123 n=0;
figlax 2:fcc04766c285 124 }
figlax 2:fcc04766c285 125 if (button5.read()==0) {
figlax 5:3b729656a1ff 126 button5_counter= button5_counter + l + l2 + l3 + l4;
figlax 5:3b729656a1ff 127 pc.printf("%s", s[button5_counter]);
figlax 5:3b729656a1ff 128 button5_counter=0;
figlax 6:1ff2b519fcc4 129 n=0;
figlax 5:3b729656a1ff 130 }
figlax 5:3b729656a1ff 131 if (button6.read()==0) {
figlax 5:3b729656a1ff 132 button6_counter= button6_counter + l + l2 + l3 + l4 + l5;
figlax 5:3b729656a1ff 133 pc.printf("%s", s[button6_counter]);
figlax 5:3b729656a1ff 134 button6_counter=0;
figlax 6:1ff2b519fcc4 135 n=0;
figlax 2:fcc04766c285 136 }
figlax 5:3b729656a1ff 137 if (button7.read()==0) {
figlax 5:3b729656a1ff 138 button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6;
figlax 5:3b729656a1ff 139 pc.printf("%s", s[button7_counter]);
figlax 5:3b729656a1ff 140 button7_counter=0;
figlax 6:1ff2b519fcc4 141 n=0;
figlax 5:3b729656a1ff 142 }
figlax 5:3b729656a1ff 143 if (button8.read()==0) {
figlax 5:3b729656a1ff 144 button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7;
figlax 5:3b729656a1ff 145 pc.printf("%s", s[button8_counter]);
figlax 5:3b729656a1ff 146 button8_counter=0;
figlax 6:1ff2b519fcc4 147 n=0;
figlax 5:3b729656a1ff 148 }
figlax 6:1ff2b519fcc4 149 if (n==1) {
figlax 8:6f46e3682189 150 if (ec>1){
figlax 8:6f46e3682189 151 pc.printf(" ");
figlax 8:6f46e3682189 152 }
figlax 8:6f46e3682189 153 ec=0;
figlax 7:0b2dfff14976 154 n=0;
figlax 6:1ff2b519fcc4 155 }
figlax 7:0b2dfff14976 156 button_counter=0;
figlax 7:0b2dfff14976 157 button2_counter=0;
figlax 7:0b2dfff14976 158 button3_counter=0;
figlax 7:0b2dfff14976 159 button4_counter=0;
figlax 7:0b2dfff14976 160 button5_counter=0;
figlax 7:0b2dfff14976 161 button6_counter=0;
figlax 7:0b2dfff14976 162 button7_counter=0;
figlax 7:0b2dfff14976 163 button8_counter=0;
figlax 7:0b2dfff14976 164
figlax 2:fcc04766c285 165
figlax 1:38a2dd5eed44 166 }
figlax 2:fcc04766c285 167 enter_old= enter_new;
figlax 1:38a2dd5eed44 168
figlax 2:fcc04766c285 169
figlax 3:4a263f3d8b0b 170 toggle_new = toggle.read();
figlax 3:4a263f3d8b0b 171 if ((toggle_new==0) && (toggle_old==1)) {
figlax 8:6f46e3682189 172 t=1;
figlax 5:3b729656a1ff 173 myled= 0;
figlax 5:3b729656a1ff 174 wait(0.2);
figlax 5:3b729656a1ff 175 myled= 1;
figlax 5:3b729656a1ff 176
figlax 3:4a263f3d8b0b 177 if (button.read()==0) {
figlax 3:4a263f3d8b0b 178 button_counter= button_counter + 1;
figlax 3:4a263f3d8b0b 179 button2_counter=0;
figlax 3:4a263f3d8b0b 180 button3_counter=0;
figlax 3:4a263f3d8b0b 181 button4_counter=0;
figlax 3:4a263f3d8b0b 182 button5_counter=0;
figlax 5:3b729656a1ff 183 button6_counter=0;
figlax 5:3b729656a1ff 184 button7_counter=0;
figlax 5:3b729656a1ff 185 button8_counter=0;
figlax 5:3b729656a1ff 186 if (button_counter==(l)) {
figlax 5:3b729656a1ff 187 button_counter=0;
figlax 5:3b729656a1ff 188 }
figlax 8:6f46e3682189 189 t=0;
figlax 8:6f46e3682189 190 ec=0;
figlax 3:4a263f3d8b0b 191 }
figlax 3:4a263f3d8b0b 192 if (button2.read()==0) {
figlax 3:4a263f3d8b0b 193 button_counter= 0;
figlax 3:4a263f3d8b0b 194 button2_counter= button2_counter + 1;
figlax 3:4a263f3d8b0b 195 button3_counter=0;
figlax 3:4a263f3d8b0b 196 button4_counter=0;
figlax 3:4a263f3d8b0b 197 button5_counter=0;
figlax 5:3b729656a1ff 198 button6_counter=0;
figlax 5:3b729656a1ff 199 button7_counter=0;
figlax 5:3b729656a1ff 200 button8_counter=0;
figlax 5:3b729656a1ff 201 if (button2_counter==(l2)) {
figlax 5:3b729656a1ff 202 button2_counter=0;
figlax 5:3b729656a1ff 203 }
figlax 8:6f46e3682189 204 t=0;
figlax 8:6f46e3682189 205 ec=0;
figlax 3:4a263f3d8b0b 206 }
figlax 3:4a263f3d8b0b 207 if (button3.read()==0) {
figlax 3:4a263f3d8b0b 208 button_counter= 0;
figlax 3:4a263f3d8b0b 209 button2_counter=0;
figlax 3:4a263f3d8b0b 210 button3_counter= button3_counter + 1;
figlax 3:4a263f3d8b0b 211 button4_counter=0;
figlax 3:4a263f3d8b0b 212 button5_counter=0;
figlax 5:3b729656a1ff 213 button6_counter=0;
figlax 5:3b729656a1ff 214 button7_counter=0;
figlax 5:3b729656a1ff 215 button8_counter=0;
figlax 5:3b729656a1ff 216 if (button3_counter==(l3)) {
figlax 5:3b729656a1ff 217 button3_counter=0;
figlax 5:3b729656a1ff 218 }
figlax 8:6f46e3682189 219 t=0;
figlax 8:6f46e3682189 220 ec=0;
figlax 3:4a263f3d8b0b 221 }
figlax 3:4a263f3d8b0b 222 if (button4.read()==0) {
figlax 3:4a263f3d8b0b 223 button_counter= 0;
figlax 3:4a263f3d8b0b 224 button2_counter=0;
figlax 3:4a263f3d8b0b 225 button3_counter=0;
figlax 3:4a263f3d8b0b 226 button4_counter= button4_counter + 1;
figlax 3:4a263f3d8b0b 227 button5_counter=0;
figlax 5:3b729656a1ff 228 button6_counter=0;
figlax 5:3b729656a1ff 229 button7_counter=0;
figlax 5:3b729656a1ff 230 button8_counter=0;
figlax 5:3b729656a1ff 231 if (button4_counter==(l4)) {
figlax 5:3b729656a1ff 232 button4_counter=0;
figlax 5:3b729656a1ff 233 }
figlax 8:6f46e3682189 234 t=0;
figlax 8:6f46e3682189 235 ec=0;
figlax 3:4a263f3d8b0b 236 }
figlax 3:4a263f3d8b0b 237 if (button5.read()==0) {
figlax 3:4a263f3d8b0b 238 button_counter= 0;
figlax 3:4a263f3d8b0b 239 button2_counter=0;
figlax 3:4a263f3d8b0b 240 button3_counter=0;
figlax 3:4a263f3d8b0b 241 button4_counter=0;
figlax 3:4a263f3d8b0b 242 button5_counter= button5_counter + 1;
figlax 5:3b729656a1ff 243 button6_counter=0;
figlax 5:3b729656a1ff 244 button7_counter=0;
figlax 5:3b729656a1ff 245 button8_counter=0;
figlax 5:3b729656a1ff 246 if (button5_counter==(l5)) {
figlax 5:3b729656a1ff 247 button5_counter=0;
figlax 5:3b729656a1ff 248 }
figlax 8:6f46e3682189 249 t=0;
figlax 8:6f46e3682189 250 ec=0;
figlax 3:4a263f3d8b0b 251 }
figlax 5:3b729656a1ff 252 if (button6.read()==0) {
figlax 5:3b729656a1ff 253 button_counter= 0;
figlax 5:3b729656a1ff 254 button2_counter=0;
figlax 5:3b729656a1ff 255 button3_counter=0;
figlax 5:3b729656a1ff 256 button4_counter=0;
figlax 5:3b729656a1ff 257 button5_counter=0;
figlax 5:3b729656a1ff 258 button6_counter= button6_counter + 1;
figlax 5:3b729656a1ff 259 button7_counter=0;
figlax 5:3b729656a1ff 260 button8_counter=0;
figlax 5:3b729656a1ff 261 if (button6_counter==(l6)) {
figlax 5:3b729656a1ff 262 button6_counter=0;
figlax 5:3b729656a1ff 263 }
figlax 8:6f46e3682189 264 t=0;
figlax 8:6f46e3682189 265 ec=0;
figlax 5:3b729656a1ff 266 }
figlax 5:3b729656a1ff 267 if (button7.read()==0) {
figlax 5:3b729656a1ff 268 button_counter= 0;
figlax 5:3b729656a1ff 269 button2_counter=0;
figlax 5:3b729656a1ff 270 button3_counter=0;
figlax 5:3b729656a1ff 271 button4_counter=0;
figlax 5:3b729656a1ff 272 button5_counter=0;
figlax 5:3b729656a1ff 273 button6_counter=0;
figlax 5:3b729656a1ff 274 button7_counter= button7_counter + 1;
figlax 5:3b729656a1ff 275 button8_counter=0;
figlax 5:3b729656a1ff 276 if (button7_counter==(l7)) {
figlax 5:3b729656a1ff 277 button7_counter=0;
figlax 5:3b729656a1ff 278 }
figlax 8:6f46e3682189 279 t=0;
figlax 8:6f46e3682189 280 ec=0;
figlax 5:3b729656a1ff 281 }
figlax 5:3b729656a1ff 282 if (button8.read()==0) {
figlax 5:3b729656a1ff 283 button_counter= 0;
figlax 5:3b729656a1ff 284 button2_counter=0;
figlax 5:3b729656a1ff 285 button3_counter=0;
figlax 5:3b729656a1ff 286 button4_counter=0;
figlax 5:3b729656a1ff 287 button5_counter=0;
figlax 5:3b729656a1ff 288 button6_counter=0;
figlax 5:3b729656a1ff 289 button7_counter=0;
figlax 5:3b729656a1ff 290 button8_counter=button8_counter + 1;
figlax 5:3b729656a1ff 291 if (button8_counter==(l8)) {
figlax 5:3b729656a1ff 292 button8_counter=0;
figlax 5:3b729656a1ff 293 }
figlax 8:6f46e3682189 294 t=0;
figlax 8:6f46e3682189 295 ec=0;
figlax 8:6f46e3682189 296 }
figlax 8:6f46e3682189 297 if (t==1){
figlax 8:6f46e3682189 298 ec= ec+1;
figlax 8:6f46e3682189 299 //unsure if all button counters should be set to zero here.
figlax 5:3b729656a1ff 300 }
figlax 3:4a263f3d8b0b 301 }
figlax 3:4a263f3d8b0b 302 toggle_old= toggle_new;
figlax 3:4a263f3d8b0b 303
figlax 3:4a263f3d8b0b 304
figlax 3:4a263f3d8b0b 305
figlax 2:fcc04766c285 306
figlax 2:fcc04766c285 307
figlax 2:fcc04766c285 308
figlax 0:e2860e845207 309 }
figlax 0:e2860e845207 310 }