![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
pachas
Dependencies: mbed QEI FastPWM
buttons.cpp@3:45299e7882b9, 2020-04-17 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Fri Apr 17 11:22:43 2020 +0000
- Revision:
- 3:45299e7882b9
- Parent:
- 1:aa5df1878126
- Child:
- 6:d38287621cca
Esto es solo un backup del programa para controlar el ventilador, con fecha 17/04/2020.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelangel_2511 | 0:9d0b9785d3d6 | 1 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 2 | #include "mbed.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 3 | #include "buttons.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 4 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 5 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 6 | /* Object definition */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 7 | BusIn buttons (ENTER_SW_PIN, LIMIT_SW_01_PIN, GAS_INPUT_SW_PIN); |
miguelangel_2511 | 3:45299e7882b9 | 8 | DigitalIn push_button(ENTER_SW_PIN); |
miguelangel_2511 | 0:9d0b9785d3d6 | 9 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 10 | /* Global variable definition */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 11 | volatile uint8_t button_state = 0; // debounced button state (bit == 1: button pressed) |
miguelangel_2511 | 0:9d0b9785d3d6 | 12 | volatile uint8_t button_press = 0; // button press detect |
miguelangel_2511 | 0:9d0b9785d3d6 | 13 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 14 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 15 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 16 | void Buttons_Initialize(void){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 17 | // Enable the pull-up resistors for the buttons and the switch |
miguelangel_2511 | 3:45299e7882b9 | 18 | push_button.mode(PullUp); |
miguelangel_2511 | 0:9d0b9785d3d6 | 19 | } |
miguelangel_2511 | 0:9d0b9785d3d6 | 20 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 21 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 22 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 23 | /**************************************************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 24 | getButtonPress: check if a button has been pressed. |
miguelangel_2511 | 0:9d0b9785d3d6 | 25 | Each pressed key is reported only once |
miguelangel_2511 | 0:9d0b9785d3d6 | 26 | *****************************************************************/ |
miguelangel_2511 | 0:9d0b9785d3d6 | 27 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 28 | uint8_t Get_Button_Press(uint8_t button_mask){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 29 | __disable_irq(); // disable interrupts |
miguelangel_2511 | 0:9d0b9785d3d6 | 30 | button_mask &= button_press; // read button(s) |
miguelangel_2511 | 0:9d0b9785d3d6 | 31 | button_press ^= button_mask; // clear button(s) |
miguelangel_2511 | 0:9d0b9785d3d6 | 32 | __enable_irq(); // enable interrupts |
miguelangel_2511 | 0:9d0b9785d3d6 | 33 | return button_mask; |
miguelangel_2511 | 0:9d0b9785d3d6 | 34 | } |