Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of PGO6_VoteController_template by
debounce_button.h@0:fd29cd85e75e, 2017-10-26 (annotated)
- Committer:
- jensdehoog
- Date:
- Thu Oct 26 07:33:07 2017 +0000
- Revision:
- 0:fd29cd85e75e
- Child:
- 3:b2c9de2f45c7
Added the template for the assignment of the Vote Controller
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jensdehoog | 0:fd29cd85e75e | 1 | #include "mbed.h" |
jensdehoog | 0:fd29cd85e75e | 2 | |
jensdehoog | 0:fd29cd85e75e | 3 | /** |
jensdehoog | 0:fd29cd85e75e | 4 | Due to the imperfect design of the buttons, a press on the button is registered multple times. |
jensdehoog | 0:fd29cd85e75e | 5 | The debouncer module makes sure that these false positives of the button are going to be ignored. |
jensdehoog | 0:fd29cd85e75e | 6 | |
jensdehoog | 0:fd29cd85e75e | 7 | Also, this module provides a multiclick service which allows the user to press the button multiple times |
jensdehoog | 0:fd29cd85e75e | 8 | within a certain time frame. Therefore, multiple actions can be mapped to a single button. |
jensdehoog | 0:fd29cd85e75e | 9 | |
jensdehoog | 0:fd29cd85e75e | 10 | */ |
jensdehoog | 0:fd29cd85e75e | 11 | |
jensdehoog | 0:fd29cd85e75e | 12 | extern volatile bool button1_pressed; // Used in the main loop |
jensdehoog | 0:fd29cd85e75e | 13 | extern volatile bool button1_enabled; // Used for debouncing |
jensdehoog | 0:fd29cd85e75e | 14 | extern volatile int multiclick_state; // Counts how many clicks occured in the time slot, used in main loop |
jensdehoog | 0:fd29cd85e75e | 15 | extern volatile bool button1_busy; // Informs the mainloop that the user is clicking the button |
jensdehoog | 0:fd29cd85e75e | 16 | |
jensdehoog | 0:fd29cd85e75e | 17 | void button1_multiclick_reset_cb(void); // Resets the amount of clicks, but stores this value for the usage in the main loop |
jensdehoog | 0:fd29cd85e75e | 18 | void button1_enabled_cb(void); // Enables the button again after a timeout, used for debouncing the button |
jensdehoog | 0:fd29cd85e75e | 19 | void button1_onpressed_cb(void); // Callback which is called when the user presses the button |