OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3493|回复: 5

电容触摸屏移植GUI

[复制链接]

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
发表于 2016-4-9 00:39:08 | 显示全部楼层 |阅读模式
5金钱
电容触摸屏得到的是屏幕的坐标而不是AD值,可以显示界面,但是触摸没有反应,触摸需要修改哪些地方啊
#define GUI_OS                    (0)  /* Compile with multitasking support */
#define GUI_SUPPORT_TOUCH         (1)  /* Support a touch screen (req. win-manager) */
#define GUI_SUPPORT_UNICODE       (0)  /* Support mixed ASCII/UNICODE strings */
#define GUI_DEFAULT_FONT          &GUI_Font6x8
#define GUI_ALLOC_SIZE            10000  /* Size of dynamic memory ... For WM and memory devices*/
#define GUI_WINSUPPORT            1  /* Window manager package available */
#define GUI_SUPPORT_MEMDEV        1   /* Memory devices available */
#define GUI_SUPPORT_AA            1  /* Anti aliasing available */
#define GUI_TOUCH_AD_LEFT    0
#define GUI_TOUCH_AD_RIGHT   800
#define GUI_TOUCH_AD_TOP     0
#define GUI_TOUCH_AD_BOTTOM  480
int  GUI_TOUCH_X_MeasureX(void) {
  if(tp_dev.scan(0))//Óд¥Ãþ
{
  return tp_dev.x[0];  
}else return 0XFFFF;
}
int  GUI_TOUCH_X_MeasureY(void) {
if(tp_dev.scan(0))//Óд¥Ãþ
{
  return tp_dev.y[0];  
}else return 0XFFFF;  
}这些是我在修改过的地方,原子的是带ucos的和我写的程序结构不一样,看的不是很懂,请各位大神赐教,还有哪些地方修改的关于触摸这部分

最佳答案

查看完整内容[请看2#楼]

int GUI_TOUCH_X_MeasureX(void) { tp_dev.scan(0) return tp_dev.x[0]; } 改成这样就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
 楼主| 发表于 2016-4-9 00:39:09 | 显示全部楼层
share 发表于 2016-4-10 23:34
int  GUI_TOUCH_X_MeasureX(void) {
  if(tp_dev.scan(0))//Óд¥Ãþ
...

int  GUI_TOUCH_X_MeasureX(void) {
  tp_dev.scan(0)
  return tp_dev.x[0];  
}
改成这样就可以了
回复

使用道具 举报

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
 楼主| 发表于 2016-4-9 01:03:16 | 显示全部楼层
int  GUI_TOUCH_X_MeasureX(void) {
static        u16 x=0;
         if(tp_dev.scan(0))//Óд¥Ãþ
        {  x=tp_dev.x[0];
                return tp_dev.x[0];  
        }
        else return x;
}

int  GUI_TOUCH_X_MeasureY(void) {
static        u16 y=0;
if(tp_dev.scan(0))//Óд¥Ãþ
        {  
                y=tp_dev.y[0];
                return tp_dev.y[0];  
        }
        else return y;  
}
我把函数改成这样在Y方向上可以触摸了,光标始终在最左边上下移动,不能左右移动,debug的时候可以得到tp_dev.y[0];  tp_dev.x[0]; 的值
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-9 21:25:24 | 显示全部楼层
share 发表于 2016-4-9 01:03
int  GUI_TOUCH_X_MeasureX(void) {
static        u16 x=0;
         if(tp_dev.scan(0))//Óд¥& ...

打印,x,y坐标的数据,分析下问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
 楼主| 发表于 2016-4-10 23:34:25 | 显示全部楼层
正点原子 发表于 2016-4-9 21:25
打印,x,y坐标的数据,分析下问题。

int  GUI_TOUCH_X_MeasureX(void) {
  if(tp_dev.scan(0))//Óд¥Ãþ
{
  return tp_dev.x[0];  
}else return 0XFFFF;
}在原子大哥的GUI例程中是这样写的,我有点不明白了,上面这个函数的意思是有触摸的时候光标在触摸的位置,当没有触摸的时候光标在一个0xffff代表的固定位置,可是把原子大哥的程序下进去,当没有触摸的时候光标在上一次触摸的位置,而不是在一个oxffff代表的固定点。因为我按照那个例程移植的GUI程序,如果是按照原子大哥这样返回的x,y坐标,光标是一直在坐标(0,0)出不动的。仿真能得出tp_dev.x[0],tp_dev.y[0]的值;
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2015-8-16
在线时间
116 小时
发表于 2016-6-2 22:28:51 | 显示全部楼层
share 发表于 2016-4-9 00:39
int  GUI_TOUCH_X_MeasureX(void) {
  tp_dev.scan(0)
  return tp_dev.x[0];  


#define GUI_TOUCH_AD_LEFT           0                  /*AD转换的x最小值*/
#define GUI_TOUCH_AD_RIGHT   800                 /*AD转换的x最大值*/
#define GUI_TOUCH_AD_TOP         0                        /*AD转换的y最小值*/
#define GUI_TOUCH_AD_BOTTOM         480                /*AD转换的y最大值*/

#define GUI_TOUCH_SWAP_XY    0                        /*0,xy轴不交换;1,交换*/
#define GUI_TOUCH_MIRROR_X   0                        /*x轴镜像*/
#define GUI_TOUCH_MIRROR_Y   0                        /*y轴镜像*/

#define GUI_TOUCH_XSIZE                800
#define GUI_TOUCH_YSIZE                480

回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 11:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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