Published for Bernard

Dependencies:   DebounceIn USBDevice mbed

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?

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 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 }