114 static uint8_t ft5336_Get_I2C_InitializedStatus(
void);
121 static void ft5336_I2C_InitializeIfRequired(
void);
128 static uint32_t ft5336_TS_Configure(uint16_t DeviceAddr);
154 ft5336_I2C_InitializeIfRequired();
177 volatile uint8_t ucReadId = 0;
178 uint8_t nbReadAttempts = 0;
179 uint8_t bFoundDevice = 0;
182 ft5336_I2C_InitializeIfRequired();
185 for(nbReadAttempts = 0; ((nbReadAttempts < 3) && !(bFoundDevice)); nbReadAttempts++)
226 volatile uint8_t nbTouch = 0;
258 volatile uint8_t ucReadData = 0;
259 static uint16_t coord;
260 uint8_t regAddressXLow = 0;
261 uint8_t regAddressXHigh = 0;
262 uint8_t regAddressYLow = 0;
263 uint8_t regAddressYHigh = 0;
345 ucReadData =
TS_IO_Read(DeviceAddr, regAddressXLow);
349 ucReadData =
TS_IO_Read(DeviceAddr, regAddressXHigh);
356 ucReadData =
TS_IO_Read(DeviceAddr, regAddressYLow);
360 ucReadData =
TS_IO_Read(DeviceAddr, regAddressYHigh);
379 uint8_t regValue = 0;
394 uint8_t regValue = 0;
429 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 439 volatile uint8_t ucReadData = 0;
443 * pGestureId = ucReadData;
467 volatile uint8_t ucReadData = 0;
468 uint8_t regAddressXHigh = 0;
469 uint8_t regAddressPWeight = 0;
470 uint8_t regAddressPMisc = 0;
542 ucReadData =
TS_IO_Read(DeviceAddr, regAddressXHigh);
546 ucReadData =
TS_IO_Read(DeviceAddr, regAddressPWeight);
550 ucReadData =
TS_IO_Read(DeviceAddr, regAddressPMisc);
570 static uint8_t ft5336_Get_I2C_InitializedStatus(
void)
580 static void ft5336_I2C_InitializeIfRequired(
void)
597 static uint32_t ft5336_TS_Configure(uint16_t DeviceAddr)
void ft5336_Init(uint16_t DeviceAddr)
Initialize the ft5336 communication bus from MCU to FT5336 : ie I2C channel initialization (if requir...
uint8_t ft5336_TS_DetectTouch(uint16_t DeviceAddr)
Return if there is touches detected or not. Try to detect new touches and forget the old ones (reset ...
#define FT5336_TD_STAT_REG
#define FT5336_P10_WEIGHT_REG
#define FT5336_P6_MISC_REG
#define FT5336_TOUCH_POS_MSB_MASK
This file contains all the functions prototypes for the ft5336.c Touch screen driver.
#define FT5336_G_MODE_INTERRUPT_TRIGGER
#define FT5336_P10_YL_REG
#define FT5336_TOUCH_WEIGHT_MASK
#define FT5336_P8_MISC_REG
#define FT5336_MAX_DETECTABLE_TOUCH
#define FT5336_TOUCH_WEIGHT_SHIFT
#define FT5336_P3_MISC_REG
#define FT5336_I2C_NOT_INITIALIZED
#define FT5336_P7_MISC_REG
void ft5336_TS_GetXY(uint16_t DeviceAddr, uint16_t *X, uint16_t *Y)
Get the touch screen X and Y positions values Manage multi touch thanks to touch Index global variabl...
#define FT5336_P2_MISC_REG
#define FT5336_P4_MISC_REG
void ft5336_TS_GetTouchInfo(uint16_t DeviceAddr, uint32_t touchIdx, uint32_t *pWeight, uint32_t *pArea, uint32_t *pEvent)
Get the touch detailed informations on touch number 'touchIdx' (0..1) This touch detailed information...
#define FT5336_TOUCH_POS_MSB_SHIFT
void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value)
Writes a single data.
uint8_t currActiveTouchIdx
#define FT5336_TOUCH_EVT_FLAG_SHIFT
#define FT5336_G_MODE_INTERRUPT_POLLING
#define FT5336_TOUCH_POS_LSB_MASK
void ft5336_TS_GetGestureID(uint16_t DeviceAddr, uint32_t *pGestureId)
Get the last touch gesture identification (zoom, move up/down...).
#define FT5336_TOUCH_EVT_FLAG_MASK
void ft5336_TS_Start(uint16_t DeviceAddr)
Configures the touch Screen IC device to start detecting touches.
uint8_t currActiveTouchNb
#define FT5336_TOUCH_POS_LSB_SHIFT
#define FT5336_P6_WEIGHT_REG
#define FT5336_P10_XL_REG
TS_DrvTypeDef ft5336_ts_drv
#define FT5336_TOUCH_AREA_SHIFT
uint16_t ft5336_ReadID(uint16_t DeviceAddr)
Read the ft5336 device ID, pre initialize I2C in case of need to be able to read the FT5336 device ID...
#define FT5336_P1_WEIGHT_REG
#define FT5336_P9_WEIGHT_REG
void ft5336_TS_DisableIT(uint16_t DeviceAddr)
Configure the FT5336 device to stop generating IT on the given INT pin connected to MCU as EXTI...
#define FT5336_P10_YH_REG
#define FT5336_P9_MISC_REG
void ft5336_TS_EnableIT(uint16_t DeviceAddr)
Configure the FT5336 device to generate IT on given INT pin connected to MCU as EXTI.
#define FT5336_P10_XH_REG
#define FT5336_P2_WEIGHT_REG
#define FT5336_CHIP_ID_REG
#define FT5336_P7_WEIGHT_REG
#define FT5336_G_MODE_INTERRUPT_MASK
uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg)
Reads a single data.
void ft5336_Reset(uint16_t DeviceAddr)
Software Reset the ft5336.
#define FT5336_P8_WEIGHT_REG
#define FT5336_P1_MISC_REG
#define FT5336_TD_STAT_MASK
void TS_IO_Delay(uint32_t Delay)
Delay function used in TouchScreen low level driver.
#define FT5336_ASSERT(__condition__)
#define FT5336_P5_MISC_REG
void ft5336_TS_ClearIT(uint16_t DeviceAddr)
Clear IT status in FT5336 interrupt status clear registers Should be called Following an EXTI coming ...
#define FT5336_P10_MISC_REG
#define FT5336_G_MODE_INTERRUPT_SHIFT
#define FT5336_GEST_ID_REG
#define FT5336_P5_WEIGHT_REG
#define FT5336_P3_WEIGHT_REG
#define FT5336_P4_WEIGHT_REG
uint8_t ft5336_TS_ITStatus(uint16_t DeviceAddr)
Get IT status from FT5336 interrupt status registers Should be called Following an EXTI coming to the...
#define FT5336_I2C_INITIALIZED
#define FT5336_TOUCH_AREA_MASK
void TS_IO_Init(void)
Initializes Touchscreen low level.