Published for Bernard

Dependencies:   DebounceIn USBDevice mbed

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?

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