Published for Bernard
Dependencies: DebounceIn USBDevice mbed
main.cpp@5:3b729656a1ff, 2014-09-18 (annotated)
- Committer:
- figlax
- Date:
- Thu Sep 18 08:15:14 2014 +0000
- Revision:
- 5:3b729656a1ff
- Parent:
- 4:d591b4a00e37
- Child:
- 6:1ff2b519fcc4
All 8 buttons work. The problem with button 5 was resolved by replacing the wire. No space.
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 | 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 | 5:3b729656a1ff | 54 | int l=3; |
figlax | 5:3b729656a1ff | 55 | int l2=3; |
figlax | 5:3b729656a1ff | 56 | int l3=3; |
figlax | 5:3b729656a1ff | 57 | int l4=3; |
figlax | 5:3b729656a1ff | 58 | int l5=3; |
figlax | 5:3b729656a1ff | 59 | int l6=4; |
figlax | 5:3b729656a1ff | 60 | int l7=4; |
figlax | 5:3b729656a1ff | 61 | int l8=4; |
figlax | 2:fcc04766c285 | 62 | |
figlax | 1:38a2dd5eed44 | 63 | |
figlax | 5:3b729656a1ff | 64 | 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 | 65 | |
figlax | 5:3b729656a1ff | 66 | myled=1; |
figlax | 5:3b729656a1ff | 67 | myled3=1; |
figlax | 5:3b729656a1ff | 68 | |
figlax | 5:3b729656a1ff | 69 | myled2=0; |
figlax | 5:3b729656a1ff | 70 | wait(0.4); |
figlax | 5:3b729656a1ff | 71 | myled2=1; |
figlax | 5:3b729656a1ff | 72 | wait(0.4); |
figlax | 5:3b729656a1ff | 73 | myled2=0; |
figlax | 5:3b729656a1ff | 74 | wait(0.4); |
figlax | 5:3b729656a1ff | 75 | myled2=1; |
figlax | 5:3b729656a1ff | 76 | wait(0.4); |
figlax | 5:3b729656a1ff | 77 | myled2=0; |
figlax | 5:3b729656a1ff | 78 | wait(0.4); |
figlax | 5:3b729656a1ff | 79 | myled2=1; |
figlax | 5:3b729656a1ff | 80 | wait(0.4); |
figlax | 5:3b729656a1ff | 81 | |
figlax | 1:38a2dd5eed44 | 82 | myled=0; |
figlax | 5:3b729656a1ff | 83 | wait(0.4); |
figlax | 5:3b729656a1ff | 84 | myled=1; |
figlax | 0:e2860e845207 | 85 | |
figlax | 5:3b729656a1ff | 86 | |
figlax | 0:e2860e845207 | 87 | while(1) { |
figlax | 2:fcc04766c285 | 88 | enter_new = enter.read(); |
figlax | 2:fcc04766c285 | 89 | if((enter_new==0) && (enter_old==1)) { |
figlax | 5:3b729656a1ff | 90 | myled3= 0; |
figlax | 5:3b729656a1ff | 91 | wait(0.2); |
figlax | 5:3b729656a1ff | 92 | myled3= 1; |
figlax | 2:fcc04766c285 | 93 | if (button.read()==0) { |
figlax | 5:3b729656a1ff | 94 | pc.printf("%s", s[button_counter]); |
figlax | 5:3b729656a1ff | 95 | button_counter=0; |
figlax | 2:fcc04766c285 | 96 | } |
figlax | 2:fcc04766c285 | 97 | if (button2.read()==0) { |
figlax | 5:3b729656a1ff | 98 | button2_counter= button2_counter + l; |
figlax | 5:3b729656a1ff | 99 | pc.printf("%s", s[button2_counter]); |
figlax | 5:3b729656a1ff | 100 | button2_counter=0; |
figlax | 2:fcc04766c285 | 101 | } |
figlax | 2:fcc04766c285 | 102 | if (button3.read()==0) { |
figlax | 5:3b729656a1ff | 103 | button3_counter= button3_counter + l + l2; |
figlax | 5:3b729656a1ff | 104 | pc.printf("%s", s[button3_counter]); |
figlax | 5:3b729656a1ff | 105 | button3_counter=0; |
figlax | 2:fcc04766c285 | 106 | } |
figlax | 2:fcc04766c285 | 107 | if (button4.read()==0) { |
figlax | 5:3b729656a1ff | 108 | button4_counter= button4_counter + l + l2 + l3; |
figlax | 5:3b729656a1ff | 109 | pc.printf("%s", s[button4_counter]); |
figlax | 5:3b729656a1ff | 110 | button4_counter=0; |
figlax | 2:fcc04766c285 | 111 | } |
figlax | 2:fcc04766c285 | 112 | if (button5.read()==0) { |
figlax | 5:3b729656a1ff | 113 | button5_counter= button5_counter + l + l2 + l3 + l4; |
figlax | 5:3b729656a1ff | 114 | pc.printf("%s", s[button5_counter]); |
figlax | 5:3b729656a1ff | 115 | button5_counter=0; |
figlax | 5:3b729656a1ff | 116 | } |
figlax | 5:3b729656a1ff | 117 | if (button6.read()==0) { |
figlax | 5:3b729656a1ff | 118 | button6_counter= button6_counter + l + l2 + l3 + l4 + l5; |
figlax | 5:3b729656a1ff | 119 | pc.printf("%s", s[button6_counter]); |
figlax | 5:3b729656a1ff | 120 | button6_counter=0; |
figlax | 2:fcc04766c285 | 121 | } |
figlax | 5:3b729656a1ff | 122 | if (button7.read()==0) { |
figlax | 5:3b729656a1ff | 123 | button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6; |
figlax | 5:3b729656a1ff | 124 | pc.printf("%s", s[button7_counter]); |
figlax | 5:3b729656a1ff | 125 | button7_counter=0; |
figlax | 5:3b729656a1ff | 126 | } |
figlax | 5:3b729656a1ff | 127 | if (button8.read()==0) { |
figlax | 5:3b729656a1ff | 128 | button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7; |
figlax | 5:3b729656a1ff | 129 | pc.printf("%s", s[button8_counter]); |
figlax | 5:3b729656a1ff | 130 | button8_counter=0; |
figlax | 5:3b729656a1ff | 131 | } |
figlax | 2:fcc04766c285 | 132 | |
figlax | 1:38a2dd5eed44 | 133 | } |
figlax | 2:fcc04766c285 | 134 | enter_old= enter_new; |
figlax | 1:38a2dd5eed44 | 135 | |
figlax | 2:fcc04766c285 | 136 | |
figlax | 3:4a263f3d8b0b | 137 | toggle_new = toggle.read(); |
figlax | 3:4a263f3d8b0b | 138 | if ((toggle_new==0) && (toggle_old==1)) { |
figlax | 5:3b729656a1ff | 139 | |
figlax | 5:3b729656a1ff | 140 | myled= 0; |
figlax | 5:3b729656a1ff | 141 | wait(0.2); |
figlax | 5:3b729656a1ff | 142 | myled= 1; |
figlax | 5:3b729656a1ff | 143 | |
figlax | 3:4a263f3d8b0b | 144 | if (button.read()==0) { |
figlax | 3:4a263f3d8b0b | 145 | button_counter= button_counter + 1; |
figlax | 3:4a263f3d8b0b | 146 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 147 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 148 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 149 | button5_counter=0; |
figlax | 5:3b729656a1ff | 150 | button6_counter=0; |
figlax | 5:3b729656a1ff | 151 | button7_counter=0; |
figlax | 5:3b729656a1ff | 152 | button8_counter=0; |
figlax | 5:3b729656a1ff | 153 | if (button_counter==(l)) { |
figlax | 5:3b729656a1ff | 154 | button_counter=0; |
figlax | 5:3b729656a1ff | 155 | } |
figlax | 3:4a263f3d8b0b | 156 | } |
figlax | 3:4a263f3d8b0b | 157 | if (button2.read()==0) { |
figlax | 3:4a263f3d8b0b | 158 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 159 | button2_counter= button2_counter + 1; |
figlax | 3:4a263f3d8b0b | 160 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 161 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 162 | button5_counter=0; |
figlax | 5:3b729656a1ff | 163 | button6_counter=0; |
figlax | 5:3b729656a1ff | 164 | button7_counter=0; |
figlax | 5:3b729656a1ff | 165 | button8_counter=0; |
figlax | 5:3b729656a1ff | 166 | if (button2_counter==(l2)) { |
figlax | 5:3b729656a1ff | 167 | button2_counter=0; |
figlax | 5:3b729656a1ff | 168 | } |
figlax | 3:4a263f3d8b0b | 169 | } |
figlax | 3:4a263f3d8b0b | 170 | if (button3.read()==0) { |
figlax | 3:4a263f3d8b0b | 171 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 172 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 173 | button3_counter= button3_counter + 1; |
figlax | 3:4a263f3d8b0b | 174 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 175 | button5_counter=0; |
figlax | 5:3b729656a1ff | 176 | button6_counter=0; |
figlax | 5:3b729656a1ff | 177 | button7_counter=0; |
figlax | 5:3b729656a1ff | 178 | button8_counter=0; |
figlax | 5:3b729656a1ff | 179 | if (button3_counter==(l3)) { |
figlax | 5:3b729656a1ff | 180 | button3_counter=0; |
figlax | 5:3b729656a1ff | 181 | } |
figlax | 3:4a263f3d8b0b | 182 | } |
figlax | 3:4a263f3d8b0b | 183 | if (button4.read()==0) { |
figlax | 3:4a263f3d8b0b | 184 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 185 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 186 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 187 | button4_counter= button4_counter + 1; |
figlax | 3:4a263f3d8b0b | 188 | button5_counter=0; |
figlax | 5:3b729656a1ff | 189 | button6_counter=0; |
figlax | 5:3b729656a1ff | 190 | button7_counter=0; |
figlax | 5:3b729656a1ff | 191 | button8_counter=0; |
figlax | 5:3b729656a1ff | 192 | if (button4_counter==(l4)) { |
figlax | 5:3b729656a1ff | 193 | button4_counter=0; |
figlax | 5:3b729656a1ff | 194 | } |
figlax | 3:4a263f3d8b0b | 195 | } |
figlax | 3:4a263f3d8b0b | 196 | if (button5.read()==0) { |
figlax | 3:4a263f3d8b0b | 197 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 198 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 199 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 200 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 201 | button5_counter= button5_counter + 1; |
figlax | 5:3b729656a1ff | 202 | button6_counter=0; |
figlax | 5:3b729656a1ff | 203 | button7_counter=0; |
figlax | 5:3b729656a1ff | 204 | button8_counter=0; |
figlax | 5:3b729656a1ff | 205 | if (button5_counter==(l5)) { |
figlax | 5:3b729656a1ff | 206 | button5_counter=0; |
figlax | 5:3b729656a1ff | 207 | } |
figlax | 3:4a263f3d8b0b | 208 | } |
figlax | 5:3b729656a1ff | 209 | if (button6.read()==0) { |
figlax | 5:3b729656a1ff | 210 | button_counter= 0; |
figlax | 5:3b729656a1ff | 211 | button2_counter=0; |
figlax | 5:3b729656a1ff | 212 | button3_counter=0; |
figlax | 5:3b729656a1ff | 213 | button4_counter=0; |
figlax | 5:3b729656a1ff | 214 | button5_counter=0; |
figlax | 5:3b729656a1ff | 215 | button6_counter= button6_counter + 1; |
figlax | 5:3b729656a1ff | 216 | button7_counter=0; |
figlax | 5:3b729656a1ff | 217 | button8_counter=0; |
figlax | 5:3b729656a1ff | 218 | if (button6_counter==(l6)) { |
figlax | 5:3b729656a1ff | 219 | button6_counter=0; |
figlax | 5:3b729656a1ff | 220 | } |
figlax | 5:3b729656a1ff | 221 | } |
figlax | 5:3b729656a1ff | 222 | if (button7.read()==0) { |
figlax | 5:3b729656a1ff | 223 | button_counter= 0; |
figlax | 5:3b729656a1ff | 224 | button2_counter=0; |
figlax | 5:3b729656a1ff | 225 | button3_counter=0; |
figlax | 5:3b729656a1ff | 226 | button4_counter=0; |
figlax | 5:3b729656a1ff | 227 | button5_counter=0; |
figlax | 5:3b729656a1ff | 228 | button6_counter=0; |
figlax | 5:3b729656a1ff | 229 | button7_counter= button7_counter + 1; |
figlax | 5:3b729656a1ff | 230 | button8_counter=0; |
figlax | 5:3b729656a1ff | 231 | if (button7_counter==(l7)) { |
figlax | 5:3b729656a1ff | 232 | button7_counter=0; |
figlax | 5:3b729656a1ff | 233 | } |
figlax | 5:3b729656a1ff | 234 | } |
figlax | 5:3b729656a1ff | 235 | if (button8.read()==0) { |
figlax | 5:3b729656a1ff | 236 | button_counter= 0; |
figlax | 5:3b729656a1ff | 237 | button2_counter=0; |
figlax | 5:3b729656a1ff | 238 | button3_counter=0; |
figlax | 5:3b729656a1ff | 239 | button4_counter=0; |
figlax | 5:3b729656a1ff | 240 | button5_counter=0; |
figlax | 5:3b729656a1ff | 241 | button6_counter=0; |
figlax | 5:3b729656a1ff | 242 | button7_counter=0; |
figlax | 5:3b729656a1ff | 243 | button8_counter=button8_counter + 1; |
figlax | 5:3b729656a1ff | 244 | if (button8_counter==(l8)) { |
figlax | 5:3b729656a1ff | 245 | button8_counter=0; |
figlax | 5:3b729656a1ff | 246 | } |
figlax | 5:3b729656a1ff | 247 | } |
figlax | 3:4a263f3d8b0b | 248 | } |
figlax | 3:4a263f3d8b0b | 249 | toggle_old= toggle_new; |
figlax | 3:4a263f3d8b0b | 250 | |
figlax | 3:4a263f3d8b0b | 251 | |
figlax | 3:4a263f3d8b0b | 252 | |
figlax | 2:fcc04766c285 | 253 | |
figlax | 2:fcc04766c285 | 254 | |
figlax | 2:fcc04766c285 | 255 | |
figlax | 0:e2860e845207 | 256 | } |
figlax | 0:e2860e845207 | 257 | } |