
Button example.
main.cpp@5:0143ac4615a0, 2018-03-02 (annotated)
- Committer:
- eencae
- Date:
- Fri Mar 02 16:21:28 2018 +0000
- Revision:
- 5:0143ac4615a0
- Parent:
- 4:1676578fd4cd
Added missing bracket
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:2f4ee2a22324 | 1 | #include "mbed.h" |
eencae | 0:2f4ee2a22324 | 2 | |
eencae | 0:2f4ee2a22324 | 3 | DigitalIn button_A(p29); |
eencae | 0:2f4ee2a22324 | 4 | DigitalIn button_B(p28); |
eencae | 0:2f4ee2a22324 | 5 | DigitalIn button_C(p27); |
eencae | 0:2f4ee2a22324 | 6 | DigitalIn button_D(p26); |
eencae | 0:2f4ee2a22324 | 7 | |
eencae | 2:8211254a87fd | 8 | DigitalOut red_led(p24); |
eencae | 2:8211254a87fd | 9 | DigitalOut green_led(p23); |
eencae | 2:8211254a87fd | 10 | DigitalOut blue_led(p22); |
eencae | 2:8211254a87fd | 11 | |
eencae | 1:f650db6c33e4 | 12 | void init_buttons(); |
eencae | 3:cb287ef68787 | 13 | void init_leds(); |
eencae | 1:f650db6c33e4 | 14 | |
eencae | 1:f650db6c33e4 | 15 | int main() |
eencae | 1:f650db6c33e4 | 16 | { |
eencae | 1:f650db6c33e4 | 17 | init_buttons(); // turn off internal pull-up/pull-down resistors |
eencae | 3:cb287ef68787 | 18 | init_leds(); // tursn off the LEDs |
eencae | 1:f650db6c33e4 | 19 | |
eencae | 0:2f4ee2a22324 | 20 | while(1) { |
eencae | 1:f650db6c33e4 | 21 | |
eencae | 2:8211254a87fd | 22 | // check if button A pressed |
eencae | 1:f650db6c33e4 | 23 | if ( button_A.read() == 1) { |
eencae | 2:8211254a87fd | 24 | // writing a 1 turns the LED off, 0 makes it turn on (active-low) |
eencae | 2:8211254a87fd | 25 | red_led.write(0); // if it is, turn the red LED on |
eencae | 4:1676578fd4cd | 26 | } else if (button_B.read() == 1) { // check if B pressed |
eencae | 4:1676578fd4cd | 27 | green_led.write(0); // if it is, turn the green LED on |
eencae | 4:1676578fd4cd | 28 | } else if ( button_C.read() == 1) { // check if C pressed |
eencae | 4:1676578fd4cd | 29 | blue_led.write(0); // if it is, turn the blue LED on |
eencae | 2:8211254a87fd | 30 | } else { |
eencae | 5:0143ac4615a0 | 31 | // if no buttons pressed, ensure all the LEDs are off |
eencae | 4:1676578fd4cd | 32 | red_led.write(1); |
eencae | 4:1676578fd4cd | 33 | green_led.write(1); |
eencae | 4:1676578fd4cd | 34 | blue_led.write(1); |
eencae | 0:2f4ee2a22324 | 35 | } |
eencae | 2:8211254a87fd | 36 | |
eencae | 5:0143ac4615a0 | 37 | wait(0.1); // small delay |
eencae | 5:0143ac4615a0 | 38 | |
eencae | 5:0143ac4615a0 | 39 | } |
eencae | 0:2f4ee2a22324 | 40 | } |
eencae | 1:f650db6c33e4 | 41 | |
eencae | 1:f650db6c33e4 | 42 | void init_buttons() |
eencae | 1:f650db6c33e4 | 43 | { |
eencae | 1:f650db6c33e4 | 44 | // PCB has external pull-down resistors so turn the internal ones off |
eencae | 1:f650db6c33e4 | 45 | // (default for DigitalIn) |
eencae | 1:f650db6c33e4 | 46 | button_A.mode(PullNone); |
eencae | 1:f650db6c33e4 | 47 | button_B.mode(PullNone); |
eencae | 1:f650db6c33e4 | 48 | button_C.mode(PullNone); |
eencae | 1:f650db6c33e4 | 49 | button_D.mode(PullNone); |
eencae | 1:f650db6c33e4 | 50 | } |
eencae | 3:cb287ef68787 | 51 | |
eencae | 3:cb287ef68787 | 52 | void init_leds() |
eencae | 3:cb287ef68787 | 53 | { |
eencae | 3:cb287ef68787 | 54 | // LEDs are common anode (active-low) so writing a 1 will turn them off |
eencae | 3:cb287ef68787 | 55 | red_led.write(1); |
eencae | 3:cb287ef68787 | 56 | green_led.write(1); |
eencae | 3:cb287ef68787 | 57 | blue_led.write(1); |
eencae | 3:cb287ef68787 | 58 | |
eencae | 3:cb287ef68787 | 59 | // this syntax is equivalent |
eencae | 3:cb287ef68787 | 60 | //red_led = 1; |
eencae | 3:cb287ef68787 | 61 | //green_led = 1; |
eencae | 3:cb287ef68787 | 62 | //blue_led = 1; |
eencae | 3:cb287ef68787 | 63 | } |
eencae | 3:cb287ef68787 | 64 |