Published for Bernard
Dependencies: DebounceIn USBDevice mbed
main.cpp@4:d591b4a00e37, 2014-09-17 (annotated)
- Committer:
- figlax
- Date:
- Wed Sep 17 08:48:39 2014 +0000
- Revision:
- 4:d591b4a00e37
- Parent:
- 3:4a263f3d8b0b
- Child:
- 5:3b729656a1ff
Successfully toggle one button
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 | 0:e2860e845207 | 6 | Serial pc(USBTX, USBRX); // tx, rx |
figlax | 2:fcc04766c285 | 7 | DigitalIn button(D2); |
figlax | 1:38a2dd5eed44 | 8 | DigitalIn button2(D3); |
figlax | 1:38a2dd5eed44 | 9 | DigitalIn button3(D4); |
figlax | 2:fcc04766c285 | 10 | DigitalIn button4(D5); |
figlax | 2:fcc04766c285 | 11 | DigitalIn button5(D10); |
figlax | 2:fcc04766c285 | 12 | DebounceIn toggle(D8); |
figlax | 2:fcc04766c285 | 13 | DebounceIn enter(D7); |
figlax | 0:e2860e845207 | 14 | |
figlax | 0:e2860e845207 | 15 | int main() { |
figlax | 2:fcc04766c285 | 16 | |
figlax | 2:fcc04766c285 | 17 | //initiate button modes to use internal pull up resistor |
figlax | 0:e2860e845207 | 18 | button.mode(PullUp); |
figlax | 1:38a2dd5eed44 | 19 | button2.mode(PullUp); |
figlax | 1:38a2dd5eed44 | 20 | button3.mode(PullUp); |
figlax | 2:fcc04766c285 | 21 | button4.mode(PullUp); |
figlax | 2:fcc04766c285 | 22 | button5.mode(PullUp); |
figlax | 2:fcc04766c285 | 23 | toggle.mode(PullUp); |
figlax | 1:38a2dd5eed44 | 24 | enter.mode(PullUp); |
figlax | 0:e2860e845207 | 25 | |
figlax | 1:38a2dd5eed44 | 26 | wait(0.001); |
figlax | 1:38a2dd5eed44 | 27 | |
figlax | 2:fcc04766c285 | 28 | //initiate counters and other variables |
figlax | 2:fcc04766c285 | 29 | |
figlax | 2:fcc04766c285 | 30 | int enter_old=1; |
figlax | 2:fcc04766c285 | 31 | int enter_new; |
figlax | 2:fcc04766c285 | 32 | int toggle_old=1; |
figlax | 2:fcc04766c285 | 33 | int toggle_new; |
figlax | 2:fcc04766c285 | 34 | int button_counter=0; |
figlax | 2:fcc04766c285 | 35 | int button2_counter=0; |
figlax | 2:fcc04766c285 | 36 | int button3_counter=0; |
figlax | 2:fcc04766c285 | 37 | int button4_counter=0; |
figlax | 2:fcc04766c285 | 38 | int button5_counter=0; |
figlax | 2:fcc04766c285 | 39 | |
figlax | 1:38a2dd5eed44 | 40 | |
figlax | 1:38a2dd5eed44 | 41 | myled=0; |
figlax | 0:e2860e845207 | 42 | |
figlax | 0:e2860e845207 | 43 | while(1) { |
figlax | 2:fcc04766c285 | 44 | enter_new = enter.read(); |
figlax | 2:fcc04766c285 | 45 | if((enter_new==0) && (enter_old==1)) { |
figlax | 2:fcc04766c285 | 46 | |
figlax | 2:fcc04766c285 | 47 | if (button.read()==0) { |
figlax | 4:d591b4a00e37 | 48 | if (button_counter==0){ |
figlax | 4:d591b4a00e37 | 49 | pc.printf("a"); |
figlax | 4:d591b4a00e37 | 50 | button_counter=0; |
figlax | 4:d591b4a00e37 | 51 | } |
figlax | 4:d591b4a00e37 | 52 | if (button_counter==1){ |
figlax | 4:d591b4a00e37 | 53 | pc.printf("b"); |
figlax | 4:d591b4a00e37 | 54 | button_counter=0; |
figlax | 4:d591b4a00e37 | 55 | } |
figlax | 2:fcc04766c285 | 56 | } |
figlax | 2:fcc04766c285 | 57 | if (button2.read()==0) { |
figlax | 2:fcc04766c285 | 58 | pc.printf("b"); |
figlax | 2:fcc04766c285 | 59 | } |
figlax | 2:fcc04766c285 | 60 | if (button3.read()==0) { |
figlax | 2:fcc04766c285 | 61 | pc.printf("c"); |
figlax | 2:fcc04766c285 | 62 | } |
figlax | 2:fcc04766c285 | 63 | if (button4.read()==0) { |
figlax | 2:fcc04766c285 | 64 | pc.printf("d"); |
figlax | 2:fcc04766c285 | 65 | } |
figlax | 2:fcc04766c285 | 66 | if (button5.read()==0) { |
figlax | 2:fcc04766c285 | 67 | pc.printf("e"); |
figlax | 2:fcc04766c285 | 68 | } |
figlax | 2:fcc04766c285 | 69 | |
figlax | 1:38a2dd5eed44 | 70 | } |
figlax | 2:fcc04766c285 | 71 | enter_old= enter_new; |
figlax | 1:38a2dd5eed44 | 72 | |
figlax | 2:fcc04766c285 | 73 | |
figlax | 3:4a263f3d8b0b | 74 | toggle_new = toggle.read(); |
figlax | 3:4a263f3d8b0b | 75 | if ((toggle_new==0) && (toggle_old==1)) { |
figlax | 3:4a263f3d8b0b | 76 | if (button.read()==0) { |
figlax | 3:4a263f3d8b0b | 77 | button_counter= button_counter + 1; |
figlax | 3:4a263f3d8b0b | 78 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 79 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 80 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 81 | button5_counter=0; |
figlax | 3:4a263f3d8b0b | 82 | } |
figlax | 3:4a263f3d8b0b | 83 | if (button2.read()==0) { |
figlax | 3:4a263f3d8b0b | 84 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 85 | button2_counter= button2_counter + 1; |
figlax | 3:4a263f3d8b0b | 86 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 87 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 88 | button5_counter=0; |
figlax | 3:4a263f3d8b0b | 89 | } |
figlax | 3:4a263f3d8b0b | 90 | if (button3.read()==0) { |
figlax | 3:4a263f3d8b0b | 91 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 92 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 93 | button3_counter= button3_counter + 1; |
figlax | 3:4a263f3d8b0b | 94 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 95 | button5_counter=0; |
figlax | 3:4a263f3d8b0b | 96 | } |
figlax | 3:4a263f3d8b0b | 97 | if (button4.read()==0) { |
figlax | 3:4a263f3d8b0b | 98 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 99 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 100 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 101 | button4_counter= button4_counter + 1; |
figlax | 3:4a263f3d8b0b | 102 | button5_counter=0; |
figlax | 3:4a263f3d8b0b | 103 | } |
figlax | 3:4a263f3d8b0b | 104 | if (button5.read()==0) { |
figlax | 3:4a263f3d8b0b | 105 | button_counter= 0; |
figlax | 3:4a263f3d8b0b | 106 | button2_counter=0; |
figlax | 3:4a263f3d8b0b | 107 | button3_counter=0; |
figlax | 3:4a263f3d8b0b | 108 | button4_counter=0; |
figlax | 3:4a263f3d8b0b | 109 | button5_counter= button5_counter + 1; |
figlax | 3:4a263f3d8b0b | 110 | } |
figlax | 3:4a263f3d8b0b | 111 | |
figlax | 3:4a263f3d8b0b | 112 | } |
figlax | 3:4a263f3d8b0b | 113 | toggle_old= toggle_new; |
figlax | 3:4a263f3d8b0b | 114 | |
figlax | 3:4a263f3d8b0b | 115 | |
figlax | 3:4a263f3d8b0b | 116 | |
figlax | 2:fcc04766c285 | 117 | |
figlax | 2:fcc04766c285 | 118 | |
figlax | 2:fcc04766c285 | 119 | |
figlax | 0:e2860e845207 | 120 | } |
figlax | 0:e2860e845207 | 121 | } |