OpenEdv-开源电子网

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

求解:触摸屏实验

[复制链接]

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2013-4-24
在线时间
23 小时
发表于 2014-1-4 12:43:42 | 显示全部楼层 |阅读模式
原子哥,你好。在看触摸屏实验时,有以下问题不太理解,烦请释疑,非常感谢!

void TP_Adjust(void)
{  
u16 pos_temp[4][2];//坐标缓存值
u8  cnt=0;
u16 d1,d2;
u32 tem1,tem2;
float fac;
u16 outtime=0;
  cnt=0;
POINT_COLOR=BLUE;
BACK_COLOR =WHITE;
LCD_Clear(WHITE);//清屏   
POINT_COLOR=RED;//红色 
LCD_Clear(WHITE);//清屏   
POINT_COLOR=BLACK;
LCD_ShowString(40,40,160,100,16,(u8*)TP_REMIND_MSG_TBL);//显示提示信息
TP_Drow_Touch_Point(20,20,RED);//画点1 
tp_dev.sta=0;//消除触发信号 
tp_dev.xfac=0;//xfac用来标记是否校准过,所以校准之前必须清掉!以免错误

1
.红色字体是否有必要?因为其下面的那两句就可满足清屏和设置画笔颜色。如果有必要,是基于什么需要或功能?
    PS:我把红色字体删掉,程序也可以运行和校正啊。

2.蓝色字体的xfac为何要清零?我去看了下,没有哪一句是用xfac去做判断啊?还有其他如yfac,xoff,yoff为何不也清零啊?

以上非常感谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2014-1-4 18:50:20 | 显示全部楼层
1、给个参数初始值而已,其实也不用

2、蓝色字体那块 
应该是注释错了
判定是否校准过   不是参考这个参数
而是否清零  一般参数用之前都会清零
学无止境
回复 支持 反对

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2013-4-24
在线时间
23 小时
 楼主| 发表于 2014-1-4 21:17:47 | 显示全部楼层
回复【2楼】jermy_z:

1、给个参数初始值而已,其实也不用
2、蓝色字体那块 
应该是注释错了
判定是否校准过   不是参考这个参数
而是否清零  一般参数用之前都会清零

---------------------------------
首先非常感谢你的回复,还有点疑问:
1.如果是给参数初始值,那Point_color=black就可以了啊?为何前面要设两次的初始值啊?好像意义不大。(注:LCD_clear清屏跟Point_color没有多大关系)
2.如果要清零,应该yfac,xoff,yoff都要清零啊?为何只有这一个Xfac清零啊?
以上,劳烦你费神了。谢谢!
回复 支持 反对

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2013-4-24
在线时间
23 小时
 楼主| 发表于 2014-1-5 17:45:48 | 显示全部楼层
原子哥,可以帮忙释义下吗?非常感谢!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-5 18:42:29 | 显示全部楼层
颜色赋值这里,可以去掉,确实是是多余的.
改成如下:

//触摸屏校准代码
//得到四个校准参数
void TP_Adjust(void)
{  
u16 pos_temp[4][2];//坐标缓存值
u8  cnt=0;
u16 d1,d2;
u32 tem1,tem2;
float fac;
u16 outtime=0;
  cnt=0;     
POINT_COLOR=RED; //红色   
POINT_COLOR=BLACK;
LCD_Clear(WHITE); //清屏 
LCD_ShowString(40,40,160,100,16,(u8*)TP_REMIND_MSG_TBL);//显示提示信息
TP_Drow_Touch_Point(20,20,RED);//画点1 
tp_dev.sta=0;//消除触发信号  
while(1)//如果连续10秒钟没有按下,则自动退出
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2013-4-24
在线时间
23 小时
 楼主| 发表于 2014-1-5 22:28:24 | 显示全部楼层
回复【5楼】正点原子:

颜色赋值这里,可以去掉,确实是是多余的.
改成如下:
//触摸屏校准代码
//得到四个校准参数
void TP_Adjust(void)
{  
u16 pos_temp[4][2];//坐标缓存值
u8  cnt=0;
u16 d1,d2;
u32 tem1,tem2;
float fac; 
u16 outtime=0;
  cnt=0;      
POINT_COLOR=RED; //红色     
POINT_COLOR=BLACK;
LCD_Clear(WHITE); //清屏 
LCD_ShowString(40,40,160,100,16,(u8*)TP_REMIND_MSG_TBL);//显示提示信息
TP_Drow_Touch_Point(20,20,RED);//画点1 
tp_dev.sta=0;/
......
---------------------------------
非常感谢原子哥,可Point_color=red这个好像也可以去掉吧?不然马上就被Point_color=BLACK覆盖掉了吧?^_^
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-7 00:02:46 | 显示全部楼层
回复【6楼】wenster:
---------------------------------
嗯,可以去掉
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 13:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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