MXC-A36_2024.04.18/fr3092_mcu/components/drivers/bsp/touchpad/driver_touchpad.h

89 lines
2.5 KiB
C

#ifndef _DRIVER_TOUCHPAD_H
#define _DRIVER_TOUCHPAD_H
#include <stdint.h>
#include "driver_i2c.h"
#ifdef __cplusplus
extern "C"
{
#endif
//*****************************************************************************
//
// Macro Variables definitions
//
//*****************************************************************************
#define __TOUCHPAD_RESET_SET() touchpad_reset_set()
#define __TOUCHPAD_RESET_CLEAR() touchpad_reset_clear()
#define __TOUCHPAD_DELAY_MS(counter) touchpad_delay_ms(counter)
//*****************************************************************************
//
// Global Variables definitions
//
//*****************************************************************************
extern I2C_HandleTypeDef i2c_touchpad_handle;
//*****************************************************************************
//
// External function definitions
//
//*****************************************************************************
/************************************************************************************
* @fn touchpad_reset_set
*
* @brief Set touchpad driver RESET pin to HIGH, this function should be implemented by user..
*/
void touchpad_reset_set(void);
/************************************************************************************
* @fn touchpad_reset_clear
*
* @brief Set touchpad driver RESET pin to LOW, this function should be implemented by user.
*/
void touchpad_reset_clear(void);
/************************************************************************************
* @fn touchpad_delay_ms
*
* @brief Used in touchpad driver. co_delay_100us or vTaskDelay can be used for implementation
* by user.
*/
void touchpad_delay_ms(uint32_t counter);
/************************************************************************************
* @fn touchpad_read
*
* @brief used to read data from touchpad, these data are update in interrupt
*
* @param x: current x position.
* y: current y position.
*
* @return true: pressed and x, y value is valid; false: released
*/
bool touchpad_read(int16_t *x, int16_t *y);
/************************************************************************************
* @fn touchpad_init
*
* @brief used to init touchpad
*/
void touchpad_init(void);
/************************************************************************************
* @fn touchpad_sleep
*
* @brief touchpad go to sleep
*/
void touchpad_sleep(void);
#ifdef __cplusplus
}
#endif
#endif // _DRIVER_TOUCHPAD_H