Ultibo API
C/C++ API for Ultibo Core
Loading...
Searching...
No Matches
ft5x06touch.h File Reference
#include "ultibo/gpio.h"
#include "ultibo/i2c.h"
#include "ultibo/touch.h"

Go to the source code of this file.

Data Structures

struct  _FT5X06_REGISTERS
struct  _FT5X06_PARAMETERS
struct  _FT5X06_TOUCH

Macros

#define FT5X06_TOUCH_DESCRIPTION   "EDT FocalTech FT5x06 Touch Controller"
 Description of FT5x06 Touch device.
#define FT5X06_I2C_RATE   400000
 Default I2C clock rate.
#define FT5X06_WORK_REGISTER_THRESHOLD   0x00
#define FT5X06_WORK_REGISTER_REPORT_RATE   0x08
#define FT5X06_WORK_REGISTER_GAIN   0x30
#define FT5X06_WORK_REGISTER_OFFSET   0x31
#define FT5X06_WORK_REGISTER_NUM_X   0x33
#define FT5X06_WORK_REGISTER_NUM_Y   0x34
#define FT5X06_PMOD_REGISTER_ACTIVE   0x00
#define FT5X06_PMOD_REGISTER_HIBERNATE   0x03
#define FT5X06_M09_REGISTER_THRESHOLD   0x80
#define FT5X06_M09_REGISTER_GAIN   0x92
#define FT5X06_M09_REGISTER_OFFSET   0x93
#define FT5X06_M09_REGISTER_NUM_X   0x94
#define FT5X06_M09_REGISTER_NUM_Y   0x95
#define FT5X06_EV_REGISTER_THRESHOLD   0x40
#define FT5X06_EV_REGISTER_GAIN   0x41
#define FT5X06_EV_REGISTER_OFFSET_Y   0x45
#define FT5X06_EV_REGISTER_OFFSET_X   0x46
#define FT5X06_NO_REGISTER   0xff
#define FT5X06_WORK_REGISTER_OPMODE   0x3c
#define FT5X06_FACTORY_REGISTER_OPMODE   0x01
#define FT5X06_PMOD_REGISTER_OPMODE   0xa5
#define FT5X06_TOUCH_EVENT_DOWN   0x00
#define FT5X06_TOUCH_EVENT_UP   0x01
#define FT5X06_TOUCH_EVENT_ON   0x02
#define FT5X06_TOUCH_EVENT_RESERVED   0x03
#define FT5X06_EDT_NAME_LEN   23
#define FT5X06_EDT_SWITCH_MODE_RETRIES   10
#define FT5X06_EDT_SWITCH_MODE_DELAY   5
 msec
#define FT5X06_EDT_RAW_DATA_RETRIES   100
#define FT5X06_EDT_RAW_DATA_DELAY   1000
 usec
#define FT5X06_POLL_INTERVAL_MS   17
 17ms = 60fps
#define FT5X06_EDT_M06   0
#define FT5X06_EDT_M09   1
#define FT5X06_EDT_M12   2
#define FT5X06_EV_FT   3
#define FT5X06_GENERIC_FT   4

Typedefs

typedef struct _FT5X06_REGISTERS FT5X06_REGISTERS
typedef struct _FT5X06_PARAMETERS FT5X06_PARAMETERS
typedef struct _FT5X06_TOUCH FT5X06_TOUCH

Functions

void STDCALL ft5x06_init (void)
TOUCH_DEVICE *STDCALL ft5x06_touch_create (I2C_DEVICE *i2c, uint16_t address, uint32_t width, uint32_t height, GPIO_INFO *irq, GPIO_INFO *rst)
 Create, register and start a new FT5x06 Touch device connected to the specified I2C device.
uint32_t STDCALL ft5x06_touch_destroy (TOUCH_DEVICE *touch)
 Stop, deregister and destroy a FT5x06 Touch device created by this driver.

Macro Definition Documentation

◆ FT5X06_TOUCH_DESCRIPTION

#define FT5X06_TOUCH_DESCRIPTION   "EDT FocalTech FT5x06 Touch Controller"

Description of FT5x06 Touch device.

FT5x06 specific constants

◆ FT5X06_I2C_RATE

#define FT5X06_I2C_RATE   400000

Default I2C clock rate.

FT5x06 I2C constants

◆ FT5X06_WORK_REGISTER_THRESHOLD

#define FT5X06_WORK_REGISTER_THRESHOLD   0x00

FT5x06 register constants

◆ FT5X06_WORK_REGISTER_REPORT_RATE

#define FT5X06_WORK_REGISTER_REPORT_RATE   0x08

◆ FT5X06_WORK_REGISTER_GAIN

#define FT5X06_WORK_REGISTER_GAIN   0x30

◆ FT5X06_WORK_REGISTER_OFFSET

#define FT5X06_WORK_REGISTER_OFFSET   0x31

◆ FT5X06_WORK_REGISTER_NUM_X

#define FT5X06_WORK_REGISTER_NUM_X   0x33

◆ FT5X06_WORK_REGISTER_NUM_Y

#define FT5X06_WORK_REGISTER_NUM_Y   0x34

◆ FT5X06_PMOD_REGISTER_ACTIVE

#define FT5X06_PMOD_REGISTER_ACTIVE   0x00

◆ FT5X06_PMOD_REGISTER_HIBERNATE

#define FT5X06_PMOD_REGISTER_HIBERNATE   0x03

◆ FT5X06_M09_REGISTER_THRESHOLD

#define FT5X06_M09_REGISTER_THRESHOLD   0x80

◆ FT5X06_M09_REGISTER_GAIN

#define FT5X06_M09_REGISTER_GAIN   0x92

◆ FT5X06_M09_REGISTER_OFFSET

#define FT5X06_M09_REGISTER_OFFSET   0x93

◆ FT5X06_M09_REGISTER_NUM_X

#define FT5X06_M09_REGISTER_NUM_X   0x94

◆ FT5X06_M09_REGISTER_NUM_Y

#define FT5X06_M09_REGISTER_NUM_Y   0x95

◆ FT5X06_EV_REGISTER_THRESHOLD

#define FT5X06_EV_REGISTER_THRESHOLD   0x40

◆ FT5X06_EV_REGISTER_GAIN

#define FT5X06_EV_REGISTER_GAIN   0x41

◆ FT5X06_EV_REGISTER_OFFSET_Y

#define FT5X06_EV_REGISTER_OFFSET_Y   0x45

◆ FT5X06_EV_REGISTER_OFFSET_X

#define FT5X06_EV_REGISTER_OFFSET_X   0x46

◆ FT5X06_NO_REGISTER

#define FT5X06_NO_REGISTER   0xff

◆ FT5X06_WORK_REGISTER_OPMODE

#define FT5X06_WORK_REGISTER_OPMODE   0x3c

◆ FT5X06_FACTORY_REGISTER_OPMODE

#define FT5X06_FACTORY_REGISTER_OPMODE   0x01

◆ FT5X06_PMOD_REGISTER_OPMODE

#define FT5X06_PMOD_REGISTER_OPMODE   0xa5

◆ FT5X06_TOUCH_EVENT_DOWN

#define FT5X06_TOUCH_EVENT_DOWN   0x00

◆ FT5X06_TOUCH_EVENT_UP

#define FT5X06_TOUCH_EVENT_UP   0x01

◆ FT5X06_TOUCH_EVENT_ON

#define FT5X06_TOUCH_EVENT_ON   0x02

◆ FT5X06_TOUCH_EVENT_RESERVED

#define FT5X06_TOUCH_EVENT_RESERVED   0x03

◆ FT5X06_EDT_NAME_LEN

#define FT5X06_EDT_NAME_LEN   23

◆ FT5X06_EDT_SWITCH_MODE_RETRIES

#define FT5X06_EDT_SWITCH_MODE_RETRIES   10

◆ FT5X06_EDT_SWITCH_MODE_DELAY

#define FT5X06_EDT_SWITCH_MODE_DELAY   5

msec

◆ FT5X06_EDT_RAW_DATA_RETRIES

#define FT5X06_EDT_RAW_DATA_RETRIES   100

◆ FT5X06_EDT_RAW_DATA_DELAY

#define FT5X06_EDT_RAW_DATA_DELAY   1000

usec

◆ FT5X06_POLL_INTERVAL_MS

#define FT5X06_POLL_INTERVAL_MS   17

17ms = 60fps

◆ FT5X06_EDT_M06

#define FT5X06_EDT_M06   0

FT5x06 version constants

◆ FT5X06_EDT_M09

#define FT5X06_EDT_M09   1

◆ FT5X06_EDT_M12

#define FT5X06_EDT_M12   2

◆ FT5X06_EV_FT

#define FT5X06_EV_FT   3

◆ FT5X06_GENERIC_FT

#define FT5X06_GENERIC_FT   4

Typedef Documentation

◆ FT5X06_REGISTERS

FT5x06 specific types

◆ FT5X06_PARAMETERS

◆ FT5X06_TOUCH

typedef struct _FT5X06_TOUCH FT5X06_TOUCH

Function Documentation

◆ ft5x06_init()

void STDCALL ft5x06_init ( void )

Initialization Functions

◆ ft5x06_touch_create()

TOUCH_DEVICE *STDCALL ft5x06_touch_create ( I2C_DEVICE * i2c,
uint16_t address,
uint32_t width,
uint32_t height,
GPIO_INFO * irq,
GPIO_INFO * rst )

Create, register and start a new FT5x06 Touch device connected to the specified I2C device.

FT5x06 Functions

Parameters
I2CThe I2C device this FT5x06 Touch device is connected to
AddressThe I2C address for this FT5x06 Touch device
WidthThe width of the screen in pixels (When set at TOUCH_ROTATION_0)
HeightThe height of the screen in pixels (When set at TOUCH_ROTATION_0)
IRQThe GPIO information for the IRQ line (Optional)
Returns
Pointer to the new Touch device or nil on failure

◆ ft5x06_touch_destroy()

uint32_t STDCALL ft5x06_touch_destroy ( TOUCH_DEVICE * touch)

Stop, deregister and destroy a FT5x06 Touch device created by this driver.

Parameters
TouchThe Touch device to destroy
Returns
ERROR_SUCCESS if completed or another error code on failure