You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.0 KiB
43 lines
1.0 KiB
/*
|
|
* Copyright (c) 2022, Erich Styger
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef DEBOUNCE_H_
|
|
#define DEBOUNCE_H_
|
|
|
|
#include <stdint.h>
|
|
#include "McuRTOS.h"
|
|
|
|
/*!
|
|
* \brief Start debouncing with a set of buttons. Do not call this method from an interrupt.
|
|
* The application gets notified through events.
|
|
* \param buttons Set of initial buttons pressed
|
|
*/
|
|
void Debounce_StartDebounce(uint32_t buttons);
|
|
|
|
/*!
|
|
* \brief Same as Debounce_StartDebounce(), but usable from an interrupt
|
|
* \param buttons Set of initial buttons pressed
|
|
* \param pxHigherPriorityTaskWoken Set to true if a task with a higher priority has been woken up
|
|
*/
|
|
void Debounce_StartDebounceFromISR(uint32_t buttons, BaseType_t *pxHigherPriorityTaskWoken);
|
|
|
|
/*!
|
|
* Returns the event queue handle.
|
|
* Button events will be written to this FIFO queue.
|
|
*/
|
|
QueueHandle_t Debounce_GetEventQueueHandle(void);
|
|
|
|
/*!
|
|
* Module de-initialization
|
|
*/
|
|
void Debounce_Deinit(void);
|
|
|
|
/*!
|
|
* \brief Module initialization
|
|
*/
|
|
void Debounce_Init(void);
|
|
|
|
#endif /* DEBOUNCE_H_ */
|
|
|