TP test started (untested)
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
#include "ft5x06.h"
|
||||
#include "tp_gt911.h"
|
||||
|
||||
bool menuRadioDiagTouch(event_t event)
|
||||
{
|
||||
@@ -28,10 +28,11 @@ bool menuRadioDiagTouch(event_t event)
|
||||
SIMPLE_SUBMENU(STR_MENU_RADIO_TOUCH, ICON_MODEL_SETUP, 1);
|
||||
|
||||
if (event == EVT_ENTRY || event == EVT_ENTRY_UP) {
|
||||
touchAvailable = touchInit();
|
||||
touchAvailable = touchPanelInit();
|
||||
touchEventFlag = 0;
|
||||
}
|
||||
else if (menuEvent) {
|
||||
touchDeInit();
|
||||
//touchDeInit();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -42,5 +43,9 @@ bool menuRadioDiagTouch(event_t event)
|
||||
lcdDrawText(LCD_W / 2, LCD_H / 2, STR_TOUCH_NOTFOUND, CENTERED);
|
||||
}
|
||||
|
||||
if (touchEventFlag) {
|
||||
touchPanelDeInit();
|
||||
popMenu();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ set(TARGET_SRC
|
||||
)
|
||||
|
||||
if(HARDWARE_TOUCH)
|
||||
set(TARGET_SRC ${TARGET_SRC} ft5x06.cpp)
|
||||
set(TARGET_SRC ${TARGET_SRC} tp_gt911.cpp)
|
||||
set(GUI_SRC ${GUI_SRC} radio_diagtouch.cpp)
|
||||
add_definitions(-DHARDWARE_TOUCH)
|
||||
endif()
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "ft5x06.h"
|
||||
|
||||
void toucDehInit(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool touchInit(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _FT5X06_H_
|
||||
#define _FT5X06_H_
|
||||
|
||||
bool touchInit(void);
|
||||
void touchDeInit(void);
|
||||
|
||||
#endif // _FT5X06_H_
|
||||
@@ -634,11 +634,26 @@
|
||||
#define AUDIO_MUTE_DELAY 500 // ms
|
||||
#endif
|
||||
|
||||
// Touch
|
||||
#if defined(HARDWARE_TOUCH)
|
||||
#define TOUCH_INT_RCC_AHB1Periph RCC_AHB1Periph_GPIOH
|
||||
#define TOUCH_INT_GPIO GPIOH
|
||||
#define TOUCH_INT_GPIO_PIN GPIO_Pin_2
|
||||
|
||||
#define TOUCH_RST_RCC_AHB1Periph RCC_AHB1Periph_GPIOF
|
||||
#define TOUCH_RST_GPIO GPIOF
|
||||
#define TOUCH_RST_GPIO_PIN GPIO_Pin_10
|
||||
|
||||
#define TOUCH_INT_EXTI_LINE1 EXTI_Line2
|
||||
#define TOUCH_INT_EXTI_IRQn1 EXTI2_IRQn
|
||||
#define TOUCH_INT_EXTI_IRQHandler1 EXTI2_IRQHandler
|
||||
#define TOUCH_INT_EXTI_PortSource EXTI_PortSourceGPIOH
|
||||
#define TOUCH_INT_EXTI_PinSource1 EXTI_PinSource2
|
||||
|
||||
#define TOUCH_INT_STAUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN))
|
||||
#endif
|
||||
|
||||
// I2C Bus
|
||||
#if defined(RADIO_TX16S)
|
||||
#define I2C_RCC_AHB1Periph 0
|
||||
#define I2C_RCC_APB1Periph 0
|
||||
#else
|
||||
#define I2C_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
#define I2C_RCC_APB1Periph RCC_APB1Periph_I2C1
|
||||
#define I2C I2C1
|
||||
@@ -649,7 +664,6 @@
|
||||
#define I2C_SCL_GPIO_PinSource GPIO_PinSource8
|
||||
#define I2C_SDA_GPIO_PinSource GPIO_PinSource9
|
||||
#define I2C_SPEED 400000
|
||||
#endif
|
||||
|
||||
// Haptic
|
||||
#define HAPTIC_PWM
|
||||
@@ -842,24 +856,6 @@
|
||||
#define TIMER_2MHz_RCC_APB1Periph RCC_APB1Periph_TIM7
|
||||
#define TIMER_2MHz_TIMER TIM7
|
||||
|
||||
// Touch
|
||||
#if defined(HARDWARE_TOUCH)
|
||||
#define I2C_TOUCH_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
#define I2C_TOUCH_RCC_APB1Periph RCC_APB1Periph_I2C1
|
||||
#define I2C_TOUCH I2C1
|
||||
#define I2C_TOUCH_GPIO GPIOB
|
||||
#define I2C_TOUCH_SCL_GPIO_PIN GPIO_Pin_8 // PB.08
|
||||
#define I2C_TOUCH_SDA_GPIO_PIN GPIO_Pin_7 // PB.07
|
||||
|
||||
#define I2C_TOUCH_RESET_GPIO GPIOF
|
||||
#define I2C_TOUCH_RESET_GPIO_PIN GPIO_Pin_10 // PF.10
|
||||
#define I2C_TOUCH_INT_GPIO GPIOH
|
||||
#define I2C_TOUCH_INT_GPIO_PIN GPIO_Pin_2 // PH.02
|
||||
#else
|
||||
#define I2C_TOUCH_RCC_AHB1Periph 0
|
||||
#define I2C_TOUCH_RCC_APB1Periph 0
|
||||
#endif
|
||||
|
||||
// Bluetooth
|
||||
#define STORAGE_BLUETOOTH
|
||||
#if defined(BLUETOOTH)
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "tp_gt911.h"
|
||||
|
||||
uint8_t touchGT911Flag = 0;
|
||||
uint8_t TOUCH_SCAN_MODE = 0;
|
||||
uint8_t touchEventFlag = 0;
|
||||
|
||||
void GT911_INT_Change(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = TOUCH_INT_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
|
||||
GPIO_Init(TOUCH_INT_GPIO, &GPIO_InitStructure);
|
||||
}
|
||||
|
||||
uint8_t GT911_Send_Cfg(uint8_t mode)
|
||||
{
|
||||
u8 buf[2];
|
||||
u8 i = 0;
|
||||
buf[0] = 0;
|
||||
buf[1] = mode; //
|
||||
for (i = 0; i < sizeof(GT911_Cfg); i++)
|
||||
buf[0] += GT911_Cfg[i];//check sum
|
||||
|
||||
buf[0] = (~buf[0]) + 1;
|
||||
GT911_WR_Reg(GT_CFGS_REG, (u8 *) GT911_Cfg, sizeof(GT911_Cfg));//
|
||||
GT911_WR_Reg(GT_CHECK_REG, buf, 2);//write checksum
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void IIC_Config(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
//I2C_InitTypeDef I2C_InitStructure;
|
||||
|
||||
/* GPIO Peripheral clock enable */
|
||||
RCC_AHB1PeriphClockCmd(I2C_RCC_AHB1Periph, ENABLE);
|
||||
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
|
||||
|
||||
//PB6: I2C1_SCL PB7: I2C1_SDA
|
||||
GPIO_InitStructure.GPIO_Pin = I2C_SCL_GPIO_PIN | I2C_SDA_GPIO_PIN;
|
||||
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(I2C_GPIO, &GPIO_InitStructure);
|
||||
|
||||
GPIO_SetBits(I2C_GPIO, I2C_SCL_GPIO_PIN | I2C_SDA_GPIO_PIN);
|
||||
}
|
||||
|
||||
static void TOUCH_AF_ExtiStop(void)
|
||||
{
|
||||
SYSCFG_EXTILineConfig(TOUCH_INT_EXTI_PortSource, TOUCH_INT_EXTI_PinSource1);
|
||||
|
||||
EXTI_InitTypeDef EXTI_InitStructure;
|
||||
EXTI_StructInit(&EXTI_InitStructure);
|
||||
EXTI_InitStructure.EXTI_Line = TOUCH_INT_EXTI_LINE1;
|
||||
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
|
||||
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
|
||||
EXTI_InitStructure.EXTI_LineCmd = DISABLE;
|
||||
EXTI_Init(&EXTI_InitStructure);
|
||||
|
||||
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
NVIC_InitStructure.NVIC_IRQChannel = TOUCH_INT_EXTI_IRQn1;
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 9;
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /* Not used as 4 bits are used for the pre-emption priority. */;
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
}
|
||||
|
||||
static void TOUCH_AF_ExtiConfig(void)
|
||||
{
|
||||
SYSCFG_EXTILineConfig(TOUCH_INT_EXTI_PortSource, TOUCH_INT_EXTI_PinSource1);
|
||||
|
||||
EXTI_InitTypeDef EXTI_InitStructure;
|
||||
EXTI_StructInit(&EXTI_InitStructure);
|
||||
EXTI_InitStructure.EXTI_Line = TOUCH_INT_EXTI_LINE1;
|
||||
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
|
||||
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
|
||||
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
|
||||
EXTI_Init(&EXTI_InitStructure);
|
||||
|
||||
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
NVIC_InitStructure.NVIC_IRQChannel = TOUCH_INT_EXTI_IRQn1;
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 9;
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /* Not used as 4 bits are used for the pre-emption priority. */;
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
}
|
||||
|
||||
static void TOUCH_AF_GPIOConfig(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
GPIO_InitStructure.GPIO_Pin = TOUCH_RST_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(TOUCH_RST_GPIO, &GPIO_InitStructure);
|
||||
|
||||
GPIO_ResetBits(TOUCH_RST_GPIO, TOUCH_RST_GPIO_PIN);
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = TOUCH_INT_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(TOUCH_INT_GPIO, &GPIO_InitStructure);
|
||||
|
||||
GPIO_ResetBits(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN);
|
||||
}
|
||||
|
||||
void touchPanelDeInit(void)
|
||||
{
|
||||
TOUCH_AF_ExtiStop();
|
||||
}
|
||||
|
||||
bool touchPanelInit(void)
|
||||
{
|
||||
uint8_t tmp[4] = {0};
|
||||
|
||||
TRACE("Touchpanel init start ...");
|
||||
|
||||
TOUCH_AF_GPIOConfig(); //SET RST=OUT INT=OUT INT=LOW
|
||||
IIC_Config();
|
||||
|
||||
TPRST_LOW();
|
||||
TPINT_HIGH();
|
||||
delay_us(200); //DELAY 200US
|
||||
|
||||
TPRST_HIGH();
|
||||
delay_ms(6); //DELAY 6MS
|
||||
|
||||
TPINT_LOW();
|
||||
delay_ms(55); //DELAY 55MS
|
||||
|
||||
GT911_INT_Change(); //Set INT INPUT INT=LOW
|
||||
|
||||
delay_ms(50); //DELAY 55MS
|
||||
|
||||
GT911_RD_Reg(GT_PID_REG, tmp, 4);
|
||||
|
||||
if (strcmp((char *) tmp, "911") == 0)//ID==9147
|
||||
{
|
||||
tmp[0] = 0X02;
|
||||
GT911_WR_Reg(GT_CTRL_REG, tmp, 1);//
|
||||
GT911_RD_Reg(GT_CFGS_REG, tmp, 1);//
|
||||
|
||||
if (tmp[0] < 0X69)//ver
|
||||
{
|
||||
//printf("Default Ver:%x\r\n",temp[0]);
|
||||
GT911_Send_Cfg(1); //
|
||||
}
|
||||
|
||||
delay_ms(10);
|
||||
tmp[0] = 0X00;
|
||||
GT911_WR_Reg(GT_CTRL_REG, tmp, 1);//end reset
|
||||
touchGT911Flag = true;
|
||||
|
||||
TOUCH_AF_ExtiConfig();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" void TOUCH_INT_EXTI_IRQHandler1(void)
|
||||
{
|
||||
if (EXTI_GetITStatus(TOUCH_INT_EXTI_LINE1) != RESET) {
|
||||
TRACE("TOUCH INTERUPT");
|
||||
touchEventFlag = 1;
|
||||
EXTI_ClearITPendingBit(TOUCH_INT_EXTI_LINE1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _FT5X06_H_
|
||||
#define _FT5X06_H_
|
||||
|
||||
#include "opentx.h"
|
||||
|
||||
#define HAS_TOUCH_PANEL() touchGT911Flag == true
|
||||
#define TOUCH_INT_STATUS() (GPIO_ReadInputDataBit(TOUCH_INT_GPIO, TOUCH_INT_GPIO_PIN))
|
||||
|
||||
bool touchPanelInit();
|
||||
void touchPanelDeInit();
|
||||
|
||||
extern uint8_t touchGT911Flag;
|
||||
extern uint8_t TOUCH_SCAN_MODE;
|
||||
extern uint8_t touchEventFlag;
|
||||
|
||||
uint8_t GT911_WR_Reg(uint16_t reg, uint8_t * buf, uint8_t len);
|
||||
void GT911_RD_Reg(uint16_t reg, uint8_t * buf, uint8_t len);
|
||||
|
||||
|
||||
//GT911 param table
|
||||
const uint8_t GT911_Cfg[]= //
|
||||
{
|
||||
0x69, //ver 0x68
|
||||
0xE0,0x01, //x 480 480X272
|
||||
0x10,0x01, //y 272
|
||||
0x05, //pass max count
|
||||
0x38, //bit4= xy change Int mode
|
||||
0x00,
|
||||
0x02, //press ct
|
||||
0x48,
|
||||
0x28,0x0D,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x18,0x1A,0x1E,0x14,0x8A,0x2A,0x0C,
|
||||
0x30,0x38,0x31,0x0D,0x00,0x00,0x02,0xB9,0x03,0x2D,
|
||||
0x00,0x00,0x00,0x00,0x00,0x03,0x64,0x32,0x00,0x00,
|
||||
0x00,0x1D,0x41,0x94,0xC5,0x02,0x07,0x00,0x00,0x04,
|
||||
0xA5,0x1F,0x00,0x94,0x25,0x00,0x88,0x2B,0x00,0x7D,
|
||||
0x33,0x00,0x74,0x3C,0x00,0x74,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x18,0x16,0x14,0x12,0x10,0x0E,0x0C,0x0A,
|
||||
0x08,0x06,0x04,0x02,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,
|
||||
0x18,0x16,0x13,0x12,0x10,0x0F,0x0A,0x08,0x06,0x04,
|
||||
0x02,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,
|
||||
};
|
||||
|
||||
//I2C
|
||||
#define GT_CMD_WR 0X28 //write
|
||||
#define GT_CMD_RD 0X29 //read
|
||||
|
||||
#define SLAVE_Write_Address 0X28
|
||||
|
||||
//GT9147
|
||||
#define GT_CTRL_REG 0X8040
|
||||
#define GT_CFGS_REG 0X8047
|
||||
#define GT_CHECK_REG 0X80FF
|
||||
#define GT_PID_REG 0X8140 //ID
|
||||
|
||||
#define GT_GSTID_REG 0X814E //
|
||||
#define GT_TP1_REG 0X8150 //
|
||||
#define GT_TP2_REG 0X8158 //
|
||||
#define GT_TP3_REG 0X8160 //
|
||||
#define GT_TP4_REG 0X8168 //
|
||||
#define GT_TP5_REG 0X8170 //
|
||||
|
||||
#define GT911_READ_XY_REG 0x814E
|
||||
#define GT911_CLEARBUF_REG 0x814E
|
||||
#define GT911_CONFIG_REG 0x8047
|
||||
#define GT911_COMMAND_REG 0x8040
|
||||
#define GT911_PRODUCT_ID_REG 0x8140
|
||||
#define GT911_VENDOR_ID_REG 0x814A
|
||||
#define GT911_CONFIG_VERSION_REG 0x8047
|
||||
#define GT911_CONFIG_CHECKSUM_REG 0x80FF
|
||||
#define GT911_FIRMWARE_VERSION_REG 0x8144
|
||||
|
||||
|
||||
typedef struct{
|
||||
uint16_t x;
|
||||
uint16_t y;
|
||||
}POINT;
|
||||
|
||||
typedef struct{
|
||||
uint16_t cnt;
|
||||
POINT points[5];
|
||||
}GT911_POINT_DATA;
|
||||
|
||||
#define TPRST_LOW() do { TOUCH_RST_GPIO->BSRRH = TOUCH_RST_GPIO_PIN; } while(0)
|
||||
#define TPRST_HIGH() do { TOUCH_RST_GPIO->BSRRL = TOUCH_RST_GPIO_PIN; } while(0)
|
||||
|
||||
#define TPINT_LOW() do { TOUCH_INT_GPIO->BSRRH = TOUCH_INT_GPIO_PIN; } while(0)
|
||||
#define TPINT_HIGH() do { TOUCH_INT_GPIO->BSRRL = TOUCH_INT_GPIO_PIN; } while(0)
|
||||
|
||||
|
||||
#define IIC_SCL_L() do { I2C_GPIO->BSRRH = I2C_SCL_GPIO_PIN; } while(0)
|
||||
#define IIC_SCL_H() do { I2C_GPIO->BSRRL = I2C_SCL_GPIO_PIN; } while(0)
|
||||
|
||||
#define IIC_SDA_L() do { I2C_GPIO->BSRRH = I2C_SDA_GPIO_PIN; } while(0)
|
||||
#define IIC_SDA_H() do { I2C_GPIO->BSRRL = I2C_SDA_GPIO_PIN; } while(0)
|
||||
|
||||
#define READ_SDA GPIO_ReadInputDataBit(I2C_GPIO, I2C_SDA_GPIO_PIN)
|
||||
|
||||
#endif // _FT5X06_H_
|
||||
Reference in New Issue
Block a user