Published for Bernard
Dependencies: DebounceIn USBDevice mbed
main.cpp@8:6f46e3682189, 2015-09-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |