vote controller implementatie van Jonas De Rynck

Dependencies:   MQTT

Fork of PGO6_VoteController_template by Jens de hoog

debounce_button.h

Committer:
jonasdr
Date:
2017-10-30
Revision:
2:5f2104244c27
Parent:
0:fd29cd85e75e

File content as of revision 2:5f2104244c27:

#include "mbed.h"

/**
    Due to the imperfect design of the buttons, a press on the button is registered multple times.
    The debouncer module makes sure that these false positives of the button are going to be ignored.
    
    Also, this module provides a multiclick service which allows the user to press the button multiple times 
    within a certain time frame. Therefore, multiple actions can be mapped to a single button.
    
*/

//extern volatile bool button1_pressed = false;   // Used in the main loop
extern volatile bool button1_enabled;   // Used for debouncing
extern volatile int multiclick_state;   // Counts how many clicks occured in the time slot, used in main loop
extern volatile bool button1_busy ;      // Informs the mainloop that the user is clicking the button
extern volatile int multiclick_state_mem; // remembers how many times the button was pressed after the state reset to 0.
extern volatile bool isready;

void button1_multiclick_reset_cb(void); // Resets the amount of clicks, but stores this value for the usage in the main loop
void button1_enabled_cb(void);          // Enables the button again after a timeout, used for debouncing the button 
void button1_onpressed_cb(void);        // Callback which is called when the user presses the button
void testing(void);                     //function that uses LEDS for testing (couldn't use printf's because my computer couldn't find the right COM port).