硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2951|回复: 6
收起左侧

请教下,有没有电容屏驱动程序的历程啊 ??

[复制链接]

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
发表于 2017-8-30 17:18:21 | 显示全部楼层 |阅读模式
问题如题 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2017-8-31 01:41:51 | 显示全部楼层
有的,有GT811和FT5X06,下载V5的出厂程序就行:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1285
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
 楼主| 发表于 2017-8-31 15:45:24 | 显示全部楼层

回 eric2013 的帖子

eric2013:有的,有GT811和FT5X06,下载V5的出厂程序就行:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1285
 (2017-08-31 01:41) 
你好,刚刚已经下载了 V5-999_出厂程序(源代码 V2.1a 2017-04-29).rar,使用 iar 工程打开编译后提示有个错误 ?

提示如下:
Error while running C:\\Users\\hp\\Desktop\\V5-999_出厂程序(源代码 V2.1a)\\Project\\EWARMv6\\CopyHex_Flash.bat
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2017-9-1 01:48:16 | 显示全部楼层

回 hpdell 的帖子

hpdell:你好,刚刚已经下载了 V5-999_出厂程序(源代码 V2.1a 2017-04-29).rar,使用 iar 工程打开编译后提示有个错误 ?

提示如下:
Error while running C:\\Users\\hp\\Desktop\\V5-999_出厂程序(源代码 V2.1a)\\Project\\EWARMv6\\CopyHex_Flash.bat
....... (2017-08-31 15:45)

我这里没问题啊,用的IAR7.5。
111.png




你那里不行的话,把这个批处理的执行删掉:
222.png
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
 楼主| 发表于 2017-9-1 11:16:58 | 显示全部楼层

回 eric2013 的帖子

eric2013:


我这里没问题啊,用的IAR7.5。


.......
把那个批处理干掉好了,

现在就是在读取触摸屏时,使用 这个函数 uint8_t TOUCH_GetKey(int16_t *_pX, int16_t *_pY)

在没有按下触摸屏时,返回状态总是返回 2,

// 这个扫描函数我放在主函数里面或者定时器里面效果都是一样的,一般来说这个函数放在哪里扫描比较好啊 ???????
void GT928_Scan(void)
{
        uint8_t buf[108];
        uint8_t i;
        static uint8_t s_tp_down = 0;
        uint16_t x, y;
        static uint16_t x_save, y_save;

        uint8_t finger = 0, touch_num = 0;

        if (g_GT928.Enable == 0)
        {
                return;
        }

        /* 20ms 执行一次 */
        if (g_GT928.TimerCount < 20)
        {
                return;
        }

        g_GT928.TimerCount = 0;

/*        
        电容触摸板手册 P14
                        BIT7          BIT6                BIT5                        BIT4                        BIT3 - BIT0
        x814E   buffer   status   large detect   Reserved HaveKey   numberof touchpoint
*/
        GT928_ReadReg(GT928_READ_XY_REG, (uint8_t *)buf, 1);                /* 读触摸板相关寄存器 */

        finger = buf[0];
        touch_num = finger & 0x0f;                /* 得到触摸点数量 */

        if ((finger & 0x80) == 0)                /* 0x80表示没有触摸键 */
        {
                return;
        }
        else                                                        /* 有触摸键,则要把 buffer(BIT7)置0,这样下次才能再读该寄存器 */
        {
                buf[0] = 0;
                GT928_WriteReg(GT928_READ_XY_REG, (uint8_t *)buf, 1);
        }

//  这个地方是我增加,增加后如果不按触摸屏的话,没有 2 返回
     if(touch_num  > 10)    // 触摸屏最大点数, 911的貌似需要这样增加
{

                buf[0] = 0;
                GT928_WriteReg(GT928_READ_XY_REG, (uint8_t *)buf, 1);
return ;
}



        if (touch_num == 0)
        {
                if (s_tp_down == 1)
                {
                        s_tp_down = 0;
                        TOUCH_PutKey(TOUCH_RELEASE, x_save, y_save);
                }
                return;
        }

        GT928_ReadReg(GT928_READ_XY_REG, &buf[0], 82);

        /*
        0x814E        buffer status        large detect        Reserved        HaveKey                num of touch point
        0x814F        监测id
        0x8150  触摸点 1,X 坐标低 8 位
        0x8151  触摸点 1,X 坐标高 8 位
        0x8152  触摸点 1,Y 坐标低 8 位
        0x8153  触摸点 1,Y 坐标高 8 位
        0x8154        触摸点1尺寸 低8位
        0x8155        触摸点1尺寸 高8位

        10个触摸点:8 x 10 + 1个触摸状态寄存器 + 1个KeyValue寄存器 = 82个寄存器
        */

        g_GT928.TouchReg = buf[0];                /* 触摸状态寄存器 */

        for (i = 0; i < 10; i++)
        {
                g_GT928.Id = buf[i * 8 + 1];                /* 监测ID */
                g_GT928.X = ((uint16_t)buf[i * 8 + 3] << 8) + buf[i * 8 + 2];                /* 触摸点 X坐标 */
                g_GT928.Y = ((uint16_t)buf[i * 8 + 5] << 8) + buf[i * 8 + 4];                /* 触摸点 Y坐标 */
                g_GT928.Size = ((uint16_t)buf[i * 8 + 7] << 8) + buf[i * 8 + 6];                /* 触摸点 尺寸 */
        }

        /* 检测按下 */
        {
                /*
                坐标:
                        (左上角是 (0,0), 右下角是 (1023,599)
                */               
                x = g_GT928.X[0];
                y = g_GT928.Y[0];
        }

        if (s_tp_down == 0)
        {
                s_tp_down = 1;

                TOUCH_PutKey(TOUCH_DOWN, x, y);
        }
        else
        {
                TOUCH_PutKey(TOUCH_MOVE, x, y);
        }
        x_save = x;        /* 保存坐标,用于释放事件 */
        y_save = y;

#if 0
        for (i = 0; i < 82; i++)
        {
                static uint8_t oldbus[108];
                if (buf != oldbus)
                {
                        //printf("[%d]:  %02X    ", i, buf);
                        oldbus = buf;
                }
        }

        /* 打印测试 */
        for (i = 0; i < 82; i++)
        {
                printf("%02X ", buf);
        }
        printf("\\r\\n");

        printf("(%5d,%5d,%5d) ",   g_GT928.Id[0], g_GT928.X[0], g_GT928.Y[0]);
//        printf("(%5d,%5d,%3d) ",  g_GT928.X1, g_GT928.Y1, g_GT928.P1);
//        printf("(%5d,%5d,%3d) ",  g_GT928.X2, g_GT928.Y2, g_GT928.P2);
//        printf("(%5d,%5d,%3d) ",  g_GT928.X3, g_GT928.Y3, g_GT928.P3);
//        printf("(%5d,%5d,%3d) ",  x, y, g_GT928.P4);
        printf("\\r\\n");
#endif        
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2017-9-2 02:04:15 | 显示全部楼层

回 hpdell 的帖子

hpdell:把那个批处理干掉好了,

现在就是在读取触摸屏时,使用 这个函数 uint8_t TOUCH_GetKey(int16_t *_pX, int16_t *_pY)

....... (2017-09-01 11:16) 
如果用了RTOS的话,放在任务里面。
如果没有用RTOS,最好也不要放在中断,I2C通信比较慢,比较占用中断时间。
比如用了emWin,emWin里面有个软件定时器,可以放在这个定时器里面搞,新版emWin教程的附加章节有说这个问题的使用方法:http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834
回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
 楼主| 发表于 2017-9-2 08:28:28 | 显示全部楼层

回 eric2013 的帖子

eric2013:如果用了RTOS的话,放在任务里面。
如果没有用RTOS,最好也不要放在中断,I2C通信比较慢,比较占用中断时间。
比如用了emWin,emWin里面有个软件定时器,可以放在这个定时器里面搞,新版emWin教程的附加章节有说这个问题的使用方法:http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834 (2017-09-02 02:04) 
[s:151][s:142][s:141][s:141][s:141][s:140]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 07:24 , Processed in 0.183538 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表