mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-15 10:58:54 +00:00
解决上电和长期运行屏幕触摸无效的问题
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
# v1.0.8
|
||||||
|
* 1.gt911的驱动方式有中断改为轮询,并初始化重新写;解决上电和长期运行屏幕触摸无效的问题
|
||||||
|
* 2.修复非标准时区和自动获取时间不一致的bug
|
||||||
|
|
||||||
# v1.0.7
|
# v1.0.7
|
||||||
* 1.增加非标准时区
|
* 1.增加非标准时区
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#define D_System_Storage "16MB+8MB"
|
#define D_System_Storage "16MB+8MB"
|
||||||
#define D_System_Hardware "1.0"
|
#define D_System_Hardware "1.0"
|
||||||
#define D_System_Screen "480*480"
|
#define D_System_Screen "480*480"
|
||||||
#define D_System_Ver 107
|
#define D_System_Ver 108
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3389,7 +3389,14 @@ void mcu_write_rtctime(unsigned char time[])
|
|||||||
//=0是utc+0
|
//=0是utc+0
|
||||||
//<0是utc-
|
//<0是utc-
|
||||||
//>0是utc+
|
//>0是utc+
|
||||||
char zone=(char)((Localtime-standardtime)/3600);//标准时区
|
|
||||||
|
// //UTC-04:30
|
||||||
|
// Localtime=1764832680;
|
||||||
|
// standardtime=1764848880;
|
||||||
|
// printf("test utc-04:30 standardtime:%ld\r\n",standardtime);
|
||||||
|
// printf("test utc-04:30 Localtime:%ld\r\n",Localtime);
|
||||||
|
|
||||||
|
int zone=(int)((Localtime-standardtime)/3600);//标准时区
|
||||||
int zone_offset=((Localtime-standardtime)%3600);//处理5:30 6:30等等非准标时区
|
int zone_offset=((Localtime-standardtime)%3600);//处理5:30 6:30等等非准标时区
|
||||||
printf("zone:%d;zone_offset:%d\r\n", zone,zone_offset);
|
printf("zone:%d;zone_offset:%d\r\n", zone,zone_offset);
|
||||||
|
|
||||||
@@ -3481,16 +3488,19 @@ void mcu_write_rtctime(unsigned char time[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
//tv.tv_sec=(time_t)Localtime;//用本地时间 时区要设置0 相对0时区的时间
|
|
||||||
|
|
||||||
tz_set(zone);
|
tz_set(zone);//不支持半时区设置
|
||||||
tv.tv_sec=(time_t)standardtime;//utc时间
|
|
||||||
|
standardtime=Localtime-zone*3600;//重新计算标准utc+0的时间 考虑UTC+5:30...等非标准时区
|
||||||
|
tv.tv_sec=(time_t)standardtime;//utc时间 疑惑点 是否要+-1800/2700
|
||||||
tv.tv_usec=0;
|
tv.tv_usec=0;
|
||||||
|
|
||||||
// int settimeofday(const struct timeval *tv , const struct timezone *tz);
|
// int settimeofday(const struct timeval *tv , const struct timezone *tz);
|
||||||
//tz参数为时区 通常将参数tz设置为NULL,表示使用当前系统的时区
|
//tz参数为时区 通常将参数tz设置为NULL,表示使用当前系统的时区
|
||||||
//输入时间戳,通过settimeofday()函数来设置系统时间,这个函数设置的精度可以精确到微秒
|
//输入时间戳,通过settimeofday()函数来设置系统时间,这个函数设置的精度可以精确到微秒
|
||||||
// tz_set(0);//本地时间就是相对0时区的时间
|
// tz_set(0);//本地时间就是相对0时区的时间
|
||||||
settimeofday(&tv, NULL);//不用重新设置时区
|
|
||||||
|
settimeofday(&tv, NULL);
|
||||||
my_memcpy((void *)timestamp,(const char *)time,4); //get timestamp
|
my_memcpy((void *)timestamp,(const char *)time,4); //get timestamp
|
||||||
zigbee_timestamp_to_time();
|
zigbee_timestamp_to_time();
|
||||||
|
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ static rt_size_t gt911_read_point(struct rt_touch_device *touch, void *buf,
|
|||||||
cmd[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
|
cmd[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
|
||||||
|
|
||||||
if (gt911_read_regs(>911_client, cmd, &point_status, 1) != RT_EOK) {
|
if (gt911_read_regs(>911_client, cmd, &point_status, 1) != RT_EOK) {
|
||||||
LOG_D("read point failed\n");
|
LOG_E("read point failed\n");
|
||||||
read_num = 0;
|
read_num = 0;
|
||||||
goto exit_;
|
goto exit_;
|
||||||
}
|
}
|
||||||
@@ -290,7 +290,7 @@ static rt_size_t gt911_read_point(struct rt_touch_device *touch, void *buf,
|
|||||||
/* read point num is touch_num */
|
/* read point num is touch_num */
|
||||||
if (gt911_read_regs(>911_client, cmd, read_buf,
|
if (gt911_read_regs(>911_client, cmd, read_buf,
|
||||||
read_num * GT911_POINT_INFO_NUM) != RT_EOK) {
|
read_num * GT911_POINT_INFO_NUM) != RT_EOK) {
|
||||||
LOG_D("read point failed\n");
|
LOG_E("read point failed\n");
|
||||||
read_num = 0;
|
read_num = 0;
|
||||||
goto exit_;
|
goto exit_;
|
||||||
}
|
}
|
||||||
@@ -350,7 +350,7 @@ exit_:
|
|||||||
write_buf[0] = (rt_uint8_t)((GT911_READ_STATUS >> 8) & 0xFF);
|
write_buf[0] = (rt_uint8_t)((GT911_READ_STATUS >> 8) & 0xFF);
|
||||||
write_buf[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
|
write_buf[1] = (rt_uint8_t)(GT911_READ_STATUS & 0xFF);
|
||||||
write_buf[2] = 0x00;
|
write_buf[2] = 0x00;
|
||||||
gt911_write_reg(>911_client, write_buf, 3);
|
gt911_write_reg(>911_client, write_buf, 3);//读完后把0x814E寄存器清为0
|
||||||
|
|
||||||
return read_num;
|
return read_num;
|
||||||
}
|
}
|
||||||
@@ -495,31 +495,53 @@ static int rt_hw_gt911_init(const char *name, struct rt_touch_config *cfg)
|
|||||||
rt_memset((void *)touch_device, 0, sizeof(struct rt_touch_device));
|
rt_memset((void *)touch_device, 0, sizeof(struct rt_touch_device));
|
||||||
|
|
||||||
/* hw init*/
|
/* hw init*/
|
||||||
|
// // rst output 0
|
||||||
|
// rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
||||||
|
// rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_LOW);
|
||||||
|
// rt_thread_delay(10);
|
||||||
|
|
||||||
|
// // irq output 0
|
||||||
|
// rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
|
||||||
|
// rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
|
||||||
|
|
||||||
|
// rt_thread_delay(2);
|
||||||
|
// // rst output 1
|
||||||
|
// rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
||||||
|
// rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_HIGH);
|
||||||
|
|
||||||
|
// rt_thread_delay(5);
|
||||||
|
// // // rst input
|
||||||
|
// // rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_INPUT);
|
||||||
|
|
||||||
|
// //irq output 0
|
||||||
|
// rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
|
||||||
|
// rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
|
||||||
|
|
||||||
|
// rt_thread_delay(50);
|
||||||
|
|
||||||
|
// rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_INPUT);
|
||||||
|
|
||||||
|
//把RST、INT拉低,延时10ms,把RST拉高(>5ms),就可以把IIC地址设为0xBA/0xBB
|
||||||
|
rt_thread_delay(20);//硬件RC电路采用的10k 1uf 复位需要10ms以上
|
||||||
|
|
||||||
// rst output 0
|
// rst output 0
|
||||||
rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
||||||
rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_LOW);
|
rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_LOW);
|
||||||
rt_thread_delay(10);
|
|
||||||
|
|
||||||
// irq output 0
|
// irq output 0
|
||||||
rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
|
rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
|
||||||
rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
|
rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
|
||||||
|
|
||||||
rt_thread_delay(2);
|
|
||||||
// rst output 1
|
|
||||||
rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
|
||||||
rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_HIGH);
|
|
||||||
|
|
||||||
rt_thread_delay(5);
|
|
||||||
// // rst input
|
|
||||||
// rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_INPUT);
|
|
||||||
|
|
||||||
//irq output 0
|
|
||||||
rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_OUTPUT);
|
|
||||||
rt_pin_write(cfg->irq_pin.pin, PIN_LOW);
|
|
||||||
|
|
||||||
rt_thread_delay(50);
|
rt_thread_delay(50);
|
||||||
|
|
||||||
rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_INPUT);
|
// rst output 1
|
||||||
|
rt_pin_mode(*(rt_uint8_t *)cfg->user_data, PIN_MODE_OUTPUT);
|
||||||
|
rt_pin_write(*(rt_uint8_t *)cfg->user_data, PIN_HIGH);
|
||||||
|
|
||||||
|
rt_thread_delay(200);// irq output 0 >50ms维持不变
|
||||||
|
|
||||||
|
//irq input 0
|
||||||
|
rt_pin_mode(cfg->irq_pin.pin, PIN_MODE_INPUT);//改成输入
|
||||||
|
|
||||||
|
|
||||||
gt911_client.bus =
|
gt911_client.bus =
|
||||||
(struct rt_i2c_bus_device *)rt_device_find(cfg->dev_name);
|
(struct rt_i2c_bus_device *)rt_device_find(cfg->dev_name);
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ static void touch_entry(void *parameter) /* touch panel control entry */
|
|||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
rt_sem_take(touch_sem, RT_WAITING_FOREVER);
|
// rt_sem_take(touch_sem, RT_WAITING_FOREVER);
|
||||||
int num = rt_device_read(dev, 0, read_data, info.point_num);
|
int num = rt_device_read(dev, 0, read_data, info.point_num);
|
||||||
if (num > 0)
|
if (num > 0)
|
||||||
{
|
{
|
||||||
@@ -81,19 +81,26 @@ static void touch_entry(void *parameter) /* touch panel control entry */
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//aicos_msleep(10);
|
|
||||||
rt_device_control(dev, RT_TOUCH_CTRL_ENABLE_INT, RT_NULL);
|
// rt_device_control(dev, RT_TOUCH_CTRL_ENABLE_INT, RT_NULL);//处理完毕再使能中断
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If using polling mode,
|
||||||
|
* the following conmments must be opened,
|
||||||
|
* and the masking related to semaphores must be removed.
|
||||||
|
*/
|
||||||
|
rt_thread_mdelay(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static rt_err_t rx_callback(rt_device_t dev, rt_size_t size)
|
static rt_err_t rx_callback(rt_device_t dev, rt_size_t size)
|
||||||
{
|
{
|
||||||
rt_sem_release(touch_sem);
|
// rt_sem_release(touch_sem);
|
||||||
rt_device_control(dev, RT_TOUCH_CTRL_DISABLE_INT, RT_NULL);
|
// rt_device_control(dev, RT_TOUCH_CTRL_DISABLE_INT, RT_NULL);//中断来了 暂时关闭中断 等处理完毕再打开
|
||||||
#ifdef AIC_PM_DEMO
|
// #ifdef AIC_PM_DEMO
|
||||||
extern struct rt_event pm_event;
|
// extern struct rt_event pm_event;
|
||||||
rt_event_send(&pm_event, 2);
|
// rt_event_send(&pm_event, 2);
|
||||||
#endif
|
// #endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,7 +112,7 @@ int tpc_run(const char *name, rt_uint16_t x, rt_uint16_t y)
|
|||||||
rt_kprintf("can't find device:%s\n", name);
|
rt_kprintf("can't find device:%s\n", name);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
//中断接收
|
||||||
if (rt_device_open(dev, RT_DEVICE_FLAG_INT_RX) != RT_EOK)
|
if (rt_device_open(dev, RT_DEVICE_FLAG_INT_RX) != RT_EOK)
|
||||||
{
|
{
|
||||||
rt_kprintf("dev %s is occupied by someone!\n", name);
|
rt_kprintf("dev %s is occupied by someone!\n", name);
|
||||||
|
|||||||
BIN
packages/artinchip/lvgl-ui/aic_drivers/lv_tpc_run.zip
Normal file
BIN
packages/artinchip/lvgl-ui/aic_drivers/lv_tpc_run.zip
Normal file
Binary file not shown.
Binary file not shown.
BIN
t3e-pro标准版_v1.0.8.zip
Normal file
BIN
t3e-pro标准版_v1.0.8.zip
Normal file
Binary file not shown.
@@ -253,7 +253,7 @@ CONFIG_AIC_USING_I2C0=y
|
|||||||
#
|
#
|
||||||
# CONFIG_AIC_DEV_I2C0_ADDR_BIT is not set
|
# CONFIG_AIC_DEV_I2C0_ADDR_BIT is not set
|
||||||
CONFIG_AIC_DEV_I2C0_10BIT=0
|
CONFIG_AIC_DEV_I2C0_10BIT=0
|
||||||
CONFIG_AIC_DEV_I2C0_SPEED=400000
|
CONFIG_AIC_DEV_I2C0_SPEED=200000
|
||||||
# CONFIG_AIC_DEV_I2C0_BUS_MODE is not set
|
# CONFIG_AIC_DEV_I2C0_BUS_MODE is not set
|
||||||
CONFIG_AIC_DEV_I2C0_SLAVE_MODE=0
|
CONFIG_AIC_DEV_I2C0_SLAVE_MODE=0
|
||||||
CONFIG_AIC_USING_PWM0=y
|
CONFIG_AIC_USING_PWM0=y
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"info": { // Header information about image
|
"info": { // Header information about image
|
||||||
"platform": "d12x",
|
"platform": "d12x",
|
||||||
"product": "t3e-pro",
|
"product": "t3e-pro",
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"media": {
|
"media": {
|
||||||
"type": "spi-nor",
|
"type": "spi-nor",
|
||||||
"device_id": 0,
|
"device_id": 0,
|
||||||
|
|||||||
Binary file not shown.
@@ -15,7 +15,7 @@
|
|||||||
"info": { // Header information about image
|
"info": { // Header information about image
|
||||||
"platform": "d12x",
|
"platform": "d12x",
|
||||||
"product": "t3e-pro",
|
"product": "t3e-pro",
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"media": {
|
"media": {
|
||||||
"type": "spi-nor",
|
"type": "spi-nor",
|
||||||
"device_id": 0,
|
"device_id": 0,
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ struct aic_pinmux aic_pinmux_config[] = {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef AIC_USING_CTP
|
#ifdef AIC_USING_CTP
|
||||||
{1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_RST_PIN},
|
{1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_RST_PIN},
|
||||||
{1, PIN_PULL_UP, 3, AIC_TOUCH_PANEL_INT_PIN},//硬件没贴上拉电阻 芯片的上拉打开
|
{1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_INT_PIN},//硬件没贴上拉电阻 芯片的上拉打开
|
||||||
#endif
|
#endif
|
||||||
#if defined(AIC_USING_QSPI0) && !defined(AIC_SYSCFG_SIP_FLASH_ENABLE)
|
#if defined(AIC_USING_QSPI0) && !defined(AIC_SYSCFG_SIP_FLASH_ENABLE)
|
||||||
/* qspi0 */
|
/* qspi0 */
|
||||||
|
|||||||
6
tools/env/tools/ConEmu/ConEmu.xml
vendored
6
tools/env/tools/ConEmu/ConEmu.xml
vendored
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<key name="Software">
|
<key name="Software">
|
||||||
<key name="ConEmu">
|
<key name="ConEmu">
|
||||||
<key name=".Vanilla" modified="2025-11-29 16:36:40" build="180206">
|
<key name=".Vanilla" modified="2025-12-05 17:31:06" build="180206">
|
||||||
<value name="StartType" type="hex" data="02"/>
|
<value name="StartType" type="hex" data="02"/>
|
||||||
<value name="CmdLine" type="string" data=""/>
|
<value name="CmdLine" type="string" data=""/>
|
||||||
<value name="StartTasksFile" type="string" data=""/>
|
<value name="StartTasksFile" type="string" data=""/>
|
||||||
@@ -259,8 +259,8 @@
|
|||||||
<value name="Cascaded" type="hex" data="01"/>
|
<value name="Cascaded" type="hex" data="01"/>
|
||||||
<value name="IntegralSize" type="hex" data="00"/>
|
<value name="IntegralSize" type="hex" data="00"/>
|
||||||
<value name="WindowMode" type="dword" data="0000051f"/>
|
<value name="WindowMode" type="dword" data="0000051f"/>
|
||||||
<value name="ConWnd X" type="long" data="538"/>
|
<value name="ConWnd X" type="long" data="838"/>
|
||||||
<value name="ConWnd Y" type="long" data="124"/>
|
<value name="ConWnd Y" type="long" data="128"/>
|
||||||
<value name="LastMonitor" type="string" data="0,0,1920,1040"/>
|
<value name="LastMonitor" type="string" data="0,0,1920,1040"/>
|
||||||
<value name="ConWnd Width" type="dword" data="0000006f"/>
|
<value name="ConWnd Width" type="dword" data="0000006f"/>
|
||||||
<value name="ConWnd Height" type="dword" data="00000026"/>
|
<value name="ConWnd Height" type="dword" data="00000026"/>
|
||||||
|
|||||||
@@ -201,3 +201,15 @@ me
|
|||||||
me
|
me
|
||||||
bm
|
bm
|
||||||
me
|
me
|
||||||
|
list
|
||||||
|
lunch 3
|
||||||
|
bm
|
||||||
|
me
|
||||||
|
me
|
||||||
|
bm
|
||||||
|
me
|
||||||
|
bm
|
||||||
|
me
|
||||||
|
me
|
||||||
|
bm
|
||||||
|
me
|
||||||
|
|||||||
Reference in New Issue
Block a user