Published for Bernard

Dependencies:   DebounceIn USBDevice mbed

Committer:
figlax
Date:
Thu Sep 18 08:41:17 2014 +0000
Revision:
6:1ff2b519fcc4
Parent:
5:3b729656a1ff
Child:
7:0b2dfff14976
Full 8 buttons. With space (open + enter).

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 2:fcc04766c285 12 DigitalIn button(D2);
figlax 1:38a2dd5eed44 13 DigitalIn button2(D3);
figlax 1:38a2dd5eed44 14 DigitalIn button3(D4);
figlax 2:fcc04766c285 15 DigitalIn button4(D5);
figlax 5:3b729656a1ff 16 DigitalIn button5(D12);
figlax 5:3b729656a1ff 17 DigitalIn button6(D7);
figlax 5:3b729656a1ff 18 DigitalIn button7(D8);
figlax 5:3b729656a1ff 19 DigitalIn button8(D9);
figlax 5:3b729656a1ff 20 DebounceIn toggle(D10);
figlax 5:3b729656a1ff 21 DebounceIn enter(D11);
figlax 0:e2860e845207 22
figlax 0:e2860e845207 23 int main() {
figlax 2:fcc04766c285 24
figlax 2:fcc04766c285 25 //initiate button modes to use internal pull up resistor
figlax 0:e2860e845207 26 button.mode(PullUp);
figlax 1:38a2dd5eed44 27 button2.mode(PullUp);
figlax 1:38a2dd5eed44 28 button3.mode(PullUp);
figlax 2:fcc04766c285 29 button4.mode(PullUp);
figlax 2:fcc04766c285 30 button5.mode(PullUp);
figlax 5:3b729656a1ff 31 button6.mode(PullUp);
figlax 5:3b729656a1ff 32 button7.mode(PullUp);
figlax 5:3b729656a1ff 33 button8.mode(PullUp);
figlax 2:fcc04766c285 34 toggle.mode(PullUp);
figlax 1:38a2dd5eed44 35 enter.mode(PullUp);
figlax 0:e2860e845207 36
figlax 1:38a2dd5eed44 37 wait(0.001);
figlax 1:38a2dd5eed44 38
figlax 2:fcc04766c285 39 //initiate counters and other variables
figlax 2:fcc04766c285 40
figlax 2:fcc04766c285 41 int enter_old=1;
figlax 2:fcc04766c285 42 int enter_new;
figlax 2:fcc04766c285 43 int toggle_old=1;
figlax 2:fcc04766c285 44 int toggle_new;
figlax 2:fcc04766c285 45 int button_counter=0;
figlax 2:fcc04766c285 46 int button2_counter=0;
figlax 2:fcc04766c285 47 int button3_counter=0;
figlax 2:fcc04766c285 48 int button4_counter=0;
figlax 2:fcc04766c285 49 int button5_counter=0;
figlax 5:3b729656a1ff 50 int button6_counter=0;
figlax 5:3b729656a1ff 51 int button7_counter=0;
figlax 5:3b729656a1ff 52 int button8_counter=0;
figlax 5:3b729656a1ff 53
figlax 6:1ff2b519fcc4 54 int n=0;
figlax 6:1ff2b519fcc4 55
figlax 5:3b729656a1ff 56 int l=3;
figlax 5:3b729656a1ff 57 int l2=3;
figlax 5:3b729656a1ff 58 int l3=3;
figlax 5:3b729656a1ff 59 int l4=3;
figlax 5:3b729656a1ff 60 int l5=3;
figlax 5:3b729656a1ff 61 int l6=4;
figlax 5:3b729656a1ff 62 int l7=4;
figlax 5:3b729656a1ff 63 int l8=4;
figlax 2:fcc04766c285 64
figlax 1:38a2dd5eed44 65
figlax 5:3b729656a1ff 66 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 67
figlax 5:3b729656a1ff 68 myled=1;
figlax 5:3b729656a1ff 69 myled3=1;
figlax 5:3b729656a1ff 70
figlax 5:3b729656a1ff 71 myled2=0;
figlax 5:3b729656a1ff 72 wait(0.4);
figlax 5:3b729656a1ff 73 myled2=1;
figlax 5:3b729656a1ff 74 wait(0.4);
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
figlax 1:38a2dd5eed44 84 myled=0;
figlax 5:3b729656a1ff 85 wait(0.4);
figlax 5:3b729656a1ff 86 myled=1;
figlax 0:e2860e845207 87
figlax 5:3b729656a1ff 88
figlax 0:e2860e845207 89 while(1) {
figlax 2:fcc04766c285 90 enter_new = enter.read();
figlax 2:fcc04766c285 91 if((enter_new==0) && (enter_old==1)) {
figlax 5:3b729656a1ff 92 myled3= 0;
figlax 5:3b729656a1ff 93 wait(0.2);
figlax 5:3b729656a1ff 94 myled3= 1;
figlax 6:1ff2b519fcc4 95 n=1;
figlax 2:fcc04766c285 96 if (button.read()==0) {
figlax 5:3b729656a1ff 97 pc.printf("%s", s[button_counter]);
figlax 5:3b729656a1ff 98 button_counter=0;
figlax 6:1ff2b519fcc4 99 n=0;
figlax 2:fcc04766c285 100 }
figlax 2:fcc04766c285 101 if (button2.read()==0) {
figlax 5:3b729656a1ff 102 button2_counter= button2_counter + l;
figlax 5:3b729656a1ff 103 pc.printf("%s", s[button2_counter]);
figlax 5:3b729656a1ff 104 button2_counter=0;
figlax 6:1ff2b519fcc4 105 n=0;
figlax 2:fcc04766c285 106 }
figlax 2:fcc04766c285 107 if (button3.read()==0) {
figlax 5:3b729656a1ff 108 button3_counter= button3_counter + l + l2;
figlax 5:3b729656a1ff 109 pc.printf("%s", s[button3_counter]);
figlax 5:3b729656a1ff 110 button3_counter=0;
figlax 6:1ff2b519fcc4 111 n=0;
figlax 2:fcc04766c285 112 }
figlax 2:fcc04766c285 113 if (button4.read()==0) {
figlax 5:3b729656a1ff 114 button4_counter= button4_counter + l + l2 + l3;
figlax 5:3b729656a1ff 115 pc.printf("%s", s[button4_counter]);
figlax 5:3b729656a1ff 116 button4_counter=0;
figlax 6:1ff2b519fcc4 117 n=0;
figlax 2:fcc04766c285 118 }
figlax 2:fcc04766c285 119 if (button5.read()==0) {
figlax 5:3b729656a1ff 120 button5_counter= button5_counter + l + l2 + l3 + l4;
figlax 5:3b729656a1ff 121 pc.printf("%s", s[button5_counter]);
figlax 5:3b729656a1ff 122 button5_counter=0;
figlax 6:1ff2b519fcc4 123 n=0;
figlax 5:3b729656a1ff 124 }
figlax 5:3b729656a1ff 125 if (button6.read()==0) {
figlax 5:3b729656a1ff 126 button6_counter= button6_counter + l + l2 + l3 + l4 + l5;
figlax 5:3b729656a1ff 127 pc.printf("%s", s[button6_counter]);
figlax 5:3b729656a1ff 128 button6_counter=0;
figlax 6:1ff2b519fcc4 129 n=0;
figlax 2:fcc04766c285 130 }
figlax 5:3b729656a1ff 131 if (button7.read()==0) {
figlax 5:3b729656a1ff 132 button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6;
figlax 5:3b729656a1ff 133 pc.printf("%s", s[button7_counter]);
figlax 5:3b729656a1ff 134 button7_counter=0;
figlax 6:1ff2b519fcc4 135 n=0;
figlax 5:3b729656a1ff 136 }
figlax 5:3b729656a1ff 137 if (button8.read()==0) {
figlax 5:3b729656a1ff 138 button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7;
figlax 5:3b729656a1ff 139 pc.printf("%s", s[button8_counter]);
figlax 5:3b729656a1ff 140 button8_counter=0;
figlax 6:1ff2b519fcc4 141 n=0;
figlax 5:3b729656a1ff 142 }
figlax 6:1ff2b519fcc4 143 if (n==1) {
figlax 6:1ff2b519fcc4 144 pc.printf(" ");
figlax 6:1ff2b519fcc4 145 }
figlax 2:fcc04766c285 146
figlax 1:38a2dd5eed44 147 }
figlax 2:fcc04766c285 148 enter_old= enter_new;
figlax 1:38a2dd5eed44 149
figlax 2:fcc04766c285 150
figlax 3:4a263f3d8b0b 151 toggle_new = toggle.read();
figlax 3:4a263f3d8b0b 152 if ((toggle_new==0) && (toggle_old==1)) {
figlax 5:3b729656a1ff 153
figlax 5:3b729656a1ff 154 myled= 0;
figlax 5:3b729656a1ff 155 wait(0.2);
figlax 5:3b729656a1ff 156 myled= 1;
figlax 5:3b729656a1ff 157
figlax 3:4a263f3d8b0b 158 if (button.read()==0) {
figlax 3:4a263f3d8b0b 159 button_counter= button_counter + 1;
figlax 3:4a263f3d8b0b 160 button2_counter=0;
figlax 3:4a263f3d8b0b 161 button3_counter=0;
figlax 3:4a263f3d8b0b 162 button4_counter=0;
figlax 3:4a263f3d8b0b 163 button5_counter=0;
figlax 5:3b729656a1ff 164 button6_counter=0;
figlax 5:3b729656a1ff 165 button7_counter=0;
figlax 5:3b729656a1ff 166 button8_counter=0;
figlax 5:3b729656a1ff 167 if (button_counter==(l)) {
figlax 5:3b729656a1ff 168 button_counter=0;
figlax 5:3b729656a1ff 169 }
figlax 3:4a263f3d8b0b 170 }
figlax 3:4a263f3d8b0b 171 if (button2.read()==0) {
figlax 3:4a263f3d8b0b 172 button_counter= 0;
figlax 3:4a263f3d8b0b 173 button2_counter= button2_counter + 1;
figlax 3:4a263f3d8b0b 174 button3_counter=0;
figlax 3:4a263f3d8b0b 175 button4_counter=0;
figlax 3:4a263f3d8b0b 176 button5_counter=0;
figlax 5:3b729656a1ff 177 button6_counter=0;
figlax 5:3b729656a1ff 178 button7_counter=0;
figlax 5:3b729656a1ff 179 button8_counter=0;
figlax 5:3b729656a1ff 180 if (button2_counter==(l2)) {
figlax 5:3b729656a1ff 181 button2_counter=0;
figlax 5:3b729656a1ff 182 }
figlax 3:4a263f3d8b0b 183 }
figlax 3:4a263f3d8b0b 184 if (button3.read()==0) {
figlax 3:4a263f3d8b0b 185 button_counter= 0;
figlax 3:4a263f3d8b0b 186 button2_counter=0;
figlax 3:4a263f3d8b0b 187 button3_counter= button3_counter + 1;
figlax 3:4a263f3d8b0b 188 button4_counter=0;
figlax 3:4a263f3d8b0b 189 button5_counter=0;
figlax 5:3b729656a1ff 190 button6_counter=0;
figlax 5:3b729656a1ff 191 button7_counter=0;
figlax 5:3b729656a1ff 192 button8_counter=0;
figlax 5:3b729656a1ff 193 if (button3_counter==(l3)) {
figlax 5:3b729656a1ff 194 button3_counter=0;
figlax 5:3b729656a1ff 195 }
figlax 3:4a263f3d8b0b 196 }
figlax 3:4a263f3d8b0b 197 if (button4.read()==0) {
figlax 3:4a263f3d8b0b 198 button_counter= 0;
figlax 3:4a263f3d8b0b 199 button2_counter=0;
figlax 3:4a263f3d8b0b 200 button3_counter=0;
figlax 3:4a263f3d8b0b 201 button4_counter= button4_counter + 1;
figlax 3:4a263f3d8b0b 202 button5_counter=0;
figlax 5:3b729656a1ff 203 button6_counter=0;
figlax 5:3b729656a1ff 204 button7_counter=0;
figlax 5:3b729656a1ff 205 button8_counter=0;
figlax 5:3b729656a1ff 206 if (button4_counter==(l4)) {
figlax 5:3b729656a1ff 207 button4_counter=0;
figlax 5:3b729656a1ff 208 }
figlax 3:4a263f3d8b0b 209 }
figlax 3:4a263f3d8b0b 210 if (button5.read()==0) {
figlax 3:4a263f3d8b0b 211 button_counter= 0;
figlax 3:4a263f3d8b0b 212 button2_counter=0;
figlax 3:4a263f3d8b0b 213 button3_counter=0;
figlax 3:4a263f3d8b0b 214 button4_counter=0;
figlax 3:4a263f3d8b0b 215 button5_counter= button5_counter + 1;
figlax 5:3b729656a1ff 216 button6_counter=0;
figlax 5:3b729656a1ff 217 button7_counter=0;
figlax 5:3b729656a1ff 218 button8_counter=0;
figlax 5:3b729656a1ff 219 if (button5_counter==(l5)) {
figlax 5:3b729656a1ff 220 button5_counter=0;
figlax 5:3b729656a1ff 221 }
figlax 3:4a263f3d8b0b 222 }
figlax 5:3b729656a1ff 223 if (button6.read()==0) {
figlax 5:3b729656a1ff 224 button_counter= 0;
figlax 5:3b729656a1ff 225 button2_counter=0;
figlax 5:3b729656a1ff 226 button3_counter=0;
figlax 5:3b729656a1ff 227 button4_counter=0;
figlax 5:3b729656a1ff 228 button5_counter=0;
figlax 5:3b729656a1ff 229 button6_counter= button6_counter + 1;
figlax 5:3b729656a1ff 230 button7_counter=0;
figlax 5:3b729656a1ff 231 button8_counter=0;
figlax 5:3b729656a1ff 232 if (button6_counter==(l6)) {
figlax 5:3b729656a1ff 233 button6_counter=0;
figlax 5:3b729656a1ff 234 }
figlax 5:3b729656a1ff 235 }
figlax 5:3b729656a1ff 236 if (button7.read()==0) {
figlax 5:3b729656a1ff 237 button_counter= 0;
figlax 5:3b729656a1ff 238 button2_counter=0;
figlax 5:3b729656a1ff 239 button3_counter=0;
figlax 5:3b729656a1ff 240 button4_counter=0;
figlax 5:3b729656a1ff 241 button5_counter=0;
figlax 5:3b729656a1ff 242 button6_counter=0;
figlax 5:3b729656a1ff 243 button7_counter= button7_counter + 1;
figlax 5:3b729656a1ff 244 button8_counter=0;
figlax 5:3b729656a1ff 245 if (button7_counter==(l7)) {
figlax 5:3b729656a1ff 246 button7_counter=0;
figlax 5:3b729656a1ff 247 }
figlax 5:3b729656a1ff 248 }
figlax 5:3b729656a1ff 249 if (button8.read()==0) {
figlax 5:3b729656a1ff 250 button_counter= 0;
figlax 5:3b729656a1ff 251 button2_counter=0;
figlax 5:3b729656a1ff 252 button3_counter=0;
figlax 5:3b729656a1ff 253 button4_counter=0;
figlax 5:3b729656a1ff 254 button5_counter=0;
figlax 5:3b729656a1ff 255 button6_counter=0;
figlax 5:3b729656a1ff 256 button7_counter=0;
figlax 5:3b729656a1ff 257 button8_counter=button8_counter + 1;
figlax 5:3b729656a1ff 258 if (button8_counter==(l8)) {
figlax 5:3b729656a1ff 259 button8_counter=0;
figlax 5:3b729656a1ff 260 }
figlax 5:3b729656a1ff 261 }
figlax 3:4a263f3d8b0b 262 }
figlax 3:4a263f3d8b0b 263 toggle_old= toggle_new;
figlax 3:4a263f3d8b0b 264
figlax 3:4a263f3d8b0b 265
figlax 3:4a263f3d8b0b 266
figlax 2:fcc04766c285 267
figlax 2:fcc04766c285 268
figlax 2:fcc04766c285 269
figlax 0:e2860e845207 270 }
figlax 0:e2860e845207 271 }