OpenEdv-开源电子网

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

触摸屏指定区域执行函数

[复制链接]

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-11-16
在线时间
3 小时
发表于 2012-12-19 18:47:24 | 显示全部楼层 |阅读模式
请教大家,我在用原子哥的MINI板子做一个实验,是在按下屏幕指定区域,然后执行其功能函数,是用横屏模式,虽说得到原子哥指点,但小弟书读的少,仍然不会,高手们别喷哈。上图


是用原子哥实验24的程序上修改的,没有任何改动,只是main里面的while(1){}改动了,大概函数如下
main()
{
各种初始化.....
然后画矩形
LCD_DrawRectangle(5, 10, 135,35);
 Show_Str(8,13,"LED0 点动 ",16,0);
 
 LCD_DrawRectangle(150, 10, 280,35); 
 Show_Str(153,13,"LED1 自锁",16,0);
 
while(1)
   {
这里问大家,如何用实现点击以上两个矩形区域,执行相应的函数?
 
如,点击了第一个矩形,LED0就亮了,再点击一下,就灭了。


     }

}
我用
while(1)
{
key = AI_Read_TP(30);

//判断触点是不是在指定区域之内
//(x,y):起始坐标
//xlen,ylen:在x,y方向上的偏移长度
//返回值 :1,在该区域内.0,不在该区域内.
if(key&Is_In_Area(5,10,135,35))
{
LED0 = 0; //点亮LED2S
}else LED0 = 1;



实现不了啊。用竖屏也没成功。

在此谢谢大家了,请教请教。

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-19 18:50:06 | 显示全部楼层
 坐标判断,我是竖屏的时候弄的。你改成横屏,不好使的啊。你坐标判断也得改。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-11-16
在线时间
3 小时
 楼主| 发表于 2012-12-19 20:56:14 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,如果是是竖屏的话,该怎么实现??

我用竖屏,也用if(key&Is_In_Area(?,?,?,?))实现不了啊,请指点。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-19 22:30:28 | 显示全部楼层
回复【3楼】stm32小菜菜:
---------------------------------
有没有仿真器?可以跟踪一下代码,看看哪里问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-11-16
在线时间
3 小时
 楼主| 发表于 2012-12-19 22:46:58 | 显示全部楼层

回复【4楼】正点原子:
---------------------------------
没有JTAG哦,只有板子。原子哥,你看我

这样编写,按理说,判断区域的程序是不是这样编写的,

假使不考虑其他地方的程序有无问题的话,这样我就可以

把握往哪里找问题了。

main()

{
  各种初始化....(保证没问题)

 while(1)

 {
    key = AI_Read_TP(30); 

if(key&Is_In_Area(5,10,135,35))
 {
 LED0 = 0; //点亮LED
 }else LED0 = 1;

}

}

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-20 00:17:41 | 显示全部楼层
是可以的.
你先测试下我们原本的代码,看看正常不,这个还是先确定下硬件是否正常.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 14:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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