Debounce_Library
antirrebote.cpp
- Committer:
- Tom_87
- Date:
- 2018-05-23
- Revision:
- 1:8db2c2a203d9
- Parent:
- 0:16d62113f1d5
File content as of revision 1:8db2c2a203d9:
#include "antirrebote.h" //Librería creada para la función del antirrebote en un pulsador //Declaración de los nombres de estados enum{PULS_NA, PULS_FLC1, PULS_A, PULS_FLC2}; AntReb::~AntReb(){ //Destrucción del objeto } AntReb::AntReb(){ //Construcción de objeto e_PULS = PULS_NA; //Valor inical de la variable encargada de memorizar el estado anterior } void AntReb::setPin(DigitalIn pin){ //Función del objeto "AntReb" para setear el pin del pulsador P_PULS = pin.read(); //Se le asigna el valor leído en la entrada seleccionada a una variable "P_PULS" (Pin Pulsador) } pinEstado_t AntReb::antiRebote(){ //Máquina de estados del objeto "AntReb" para crear el antirrebote pinEstado_t StateOut; //Variable creada que será el valor de salida de la librería switch(e_PULS){ default: case PULS_NA: StateOut = APAGADO; //Se toma el "0" como valor del pulsador presionado porque se lo estipula a una conexión PULL-UP if(P_PULS == 0) { e_PULS = PULS_FLC1; //Cambio de estado } break; case PULS_FLC1: StateOut = APAGADO; if(P_PULS == 0) { e_PULS = PULS_A; //Cambio de estado StateOut = ENCENDIDO; }else if(P_PULS == 1) { e_PULS = PULS_NA; //Cambio de estado } break; case PULS_A: StateOut = APAGADO; if(P_PULS == 1) { e_PULS = PULS_FLC2; //Cambio de estado } break; case PULS_FLC2: StateOut = APAGADO; if(P_PULS == 0) { e_PULS = PULS_A; //Cambio de estado }else if(P_PULS == 1) { e_PULS = PULS_NA; //Cambio de estado } break; } return StateOut; //La función devuelve el valor de salida }