48 #ifndef TS_MULTI_TOUCH_SUPPORTED 49 #define TS_MULTI_TOUCH_SUPPORTED 0 53 #ifndef TS_AUTO_CALIBRATION_SUPPORTED 54 #define TS_AUTO_CALIBRATION_SUPPORTED 0 58 #include "../Common/ts.h" 102 #define FT_6206_MAX_WIDTH ((uint16_t)800) 103 #define FT_6206_MAX_HEIGHT ((uint16_t)480) 106 #define FT6206_STATUS_OK 0 107 #define FT6206_STATUS_NOT_OK 1 110 #define FT6206_I2C_NOT_INITIALIZED 0 111 #define FT6206_I2C_INITIALIZED 1 114 #define FT6206_MAX_DETECTABLE_TOUCH 2 121 #define FT6206_DEV_MODE_REG 0x00 124 #define FT6206_DEV_MODE_WORKING 0x00 125 #define FT6206_DEV_MODE_FACTORY 0x04 127 #define FT6206_DEV_MODE_MASK 0x7 128 #define FT6206_DEV_MODE_SHIFT 4 131 #define FT6206_GEST_ID_REG 0x01 134 #define FT6206_GEST_ID_NO_GESTURE 0x00 135 #define FT6206_GEST_ID_MOVE_UP 0x10 136 #define FT6206_GEST_ID_MOVE_RIGHT 0x14 137 #define FT6206_GEST_ID_MOVE_DOWN 0x18 138 #define FT6206_GEST_ID_MOVE_LEFT 0x1C 139 #define FT6206_GEST_ID_ZOOM_IN 0x48 140 #define FT6206_GEST_ID_ZOOM_OUT 0x49 143 #define FT6206_TD_STAT_REG 0x02 146 #define FT6206_TD_STAT_MASK 0x0F 147 #define FT6206_TD_STAT_SHIFT 0x00 150 #define FT6206_TOUCH_EVT_FLAG_PRESS_DOWN 0x00 151 #define FT6206_TOUCH_EVT_FLAG_LIFT_UP 0x01 152 #define FT6206_TOUCH_EVT_FLAG_CONTACT 0x02 153 #define FT6206_TOUCH_EVT_FLAG_NO_EVENT 0x03 155 #define FT6206_TOUCH_EVT_FLAG_SHIFT 6 156 #define FT6206_TOUCH_EVT_FLAG_MASK (3 << FT6206_TOUCH_EVT_FLAG_SHIFT) 158 #define FT6206_MSB_MASK 0x0F 159 #define FT6206_MSB_SHIFT 0 162 #define FT6206_LSB_MASK 0xFF 163 #define FT6206_LSB_SHIFT 0 165 #define FT6206_P1_XH_REG 0x03 166 #define FT6206_P1_XL_REG 0x04 167 #define FT6206_P1_YH_REG 0x05 168 #define FT6206_P1_YL_REG 0x06 171 #define FT6206_P1_WEIGHT_REG 0x07 174 #define FT6206_TOUCH_WEIGHT_MASK 0xFF 175 #define FT6206_TOUCH_WEIGHT_SHIFT 0 178 #define FT6206_P1_MISC_REG 0x08 181 #define FT6206_TOUCH_AREA_MASK (0x04 << 4) 182 #define FT6206_TOUCH_AREA_SHIFT 0x04 184 #define FT6206_P2_XH_REG 0x09 185 #define FT6206_P2_XL_REG 0x0A 186 #define FT6206_P2_YH_REG 0x0B 187 #define FT6206_P2_YL_REG 0x0C 188 #define FT6206_P2_WEIGHT_REG 0x0D 189 #define FT6206_P2_MISC_REG 0x0E 192 #define FT6206_TH_GROUP_REG 0x80 195 #define FT6206_THRESHOLD_MASK 0xFF 196 #define FT6206_THRESHOLD_SHIFT 0 199 #define FT6206_TH_DIFF_REG 0x85 202 #define FT6206_CTRL_REG 0x86 207 #define FT6206_CTRL_KEEP_ACTIVE_MODE 0x00 210 #define FT6206_CTRL_KEEP_AUTO_SWITCH_MONITOR_MODE 0x01 213 #define FT6206_TIMEENTERMONITOR_REG 0x87 216 #define FT6206_PERIODACTIVE_REG 0x88 219 #define FT6206_PERIODMONITOR_REG 0x89 222 #define FT6206_RADIAN_VALUE_REG 0x91 225 #define FT6206_OFFSET_LEFT_RIGHT_REG 0x92 228 #define FT6206_OFFSET_UP_DOWN_REG 0x93 231 #define FT6206_DISTANCE_LEFT_RIGHT_REG 0x94 234 #define FT6206_DISTANCE_UP_DOWN_REG 0x95 237 #define FT6206_DISTANCE_ZOOM_REG 0x96 240 #define FT6206_LIB_VER_H_REG 0xA1 243 #define FT6206_LIB_VER_L_REG 0xA2 246 #define FT6206_CIPHER_REG 0xA3 249 #define FT6206_GMODE_REG 0xA4 251 #define FT6206_G_MODE_INTERRUPT_MASK 0x03 252 #define FT6206_G_MODE_INTERRUPT_SHIFT 0x00 255 #define FT6206_G_MODE_INTERRUPT_POLLING 0x00 256 #define FT6206_G_MODE_INTERRUPT_TRIGGER 0x01 259 #define FT6206_PWR_MODE_REG 0xA5 262 #define FT6206_FIRMID_REG 0xA6 265 #define FT6206_CHIP_ID_REG 0xA8 268 #define FT6206_ID_VALUE 0x11 271 #define FT6206_RELEASE_CODE_ID_REG 0xAF 274 #define FT6206_STATE_REG 0xBC 382 #if (TS_MULTI_TOUCH_SUPPORTED == 1) 390 void ft6x06_TS_GetGestureID(uint16_t DeviceAddr, uint32_t * pGestureId);
407 void ft6x06_TS_GetTouchInfo(uint16_t DeviceAddr,
423 extern void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value);
424 extern uint8_t
TS_IO_Read(uint8_t Addr, uint8_t Reg);
425 extern uint16_t
TS_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length);
void TS_IO_Init(void)
Initializes Touchscreen low level.
void ft6x06_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...
void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value)
Writes a single data.
void ft6x06_Init(uint16_t DeviceAddr)
ft6x06 Control functions
uint8_t currActiveTouchIdx
void ft6x06_Reset(uint16_t DeviceAddr)
Software Reset the ft6x06.
TS_DrvTypeDef ft6x06_ts_drv
uint8_t currActiveTouchNb
void ft6x06_TS_EnableIT(uint16_t DeviceAddr)
Configure the FT6206 device to generate IT on given INT pin connected to MCU as EXTI.
uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg)
Reads a single data.
uint8_t ft6x06_TS_DetectTouch(uint16_t DeviceAddr)
Return if there is touches detected or not. Try to detect new touches and forget the old ones (reset ...
void ft6x06_TS_ClearIT(uint16_t DeviceAddr)
Clear IT status in FT6206 interrupt status clear registers Should be called Following an EXTI coming ...
void ft6x06_TS_DisableIT(uint16_t DeviceAddr)
Configure the FT6206 device to stop generating IT on the given INT pin connected to MCU as EXTI...
uint16_t TS_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length)
Reads multiple data with I2C communication channel from TouchScreen.
void TS_IO_Delay(uint32_t Delay)
Delay function used in TouchScreen low level driver.
uint8_t ft6x06_TS_ITStatus(uint16_t DeviceAddr)
Get IT status from FT6206 interrupt status registers Should be called Following an EXTI coming to the...
void ft6x06_TS_Start(uint16_t DeviceAddr)
Configures the touch Screen IC device to start detecting touches.
uint16_t ft6x06_ReadID(uint16_t DeviceAddr)
Read the ft6x06 device ID, pre intitalize I2C in case of need to be able to read the FT6206 device ID...