OpenEdv-开源电子网

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

实验28 综合测试实验-鼠标操作版

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2010-12-21
在线时间
1 小时
发表于 2010-12-21 09:05:23 | 显示全部楼层 |阅读模式

鼠标滑动检测:
1、目录中文件表浏览:源码在GUI.C第460行
2、timeplay.c第124行


硬件:
1、要求PS2鼠标和SD正常使用。
2、鼠标使用错误时,LED1全常亮。鼠标正常时,LED1常灭。

软件:
1、字库存在SD卡中,而原子存于W25X16 FLASH芯片中。
2、AT24C02前25字节用于存放字库相关信息,这些信息的结构与原子相同。
3、字库函数修改于 text文件夹下fontupd.c 、 text.c 、 untogb.c 。增加 u8 SD_Font_Init(void) 和 u8 SD_Update_Font(void) 。修改 Get_HzMat 和 UnicodeToGBK 。

鼠标操作范围:
1、“电子图书”
  目录中文件列表浏览:显示另一页文件列表时,按下鼠标左键滑动,然后释放;
  按屏下60行,显示下一页文字;
  长按左键并移动鼠标,退出界面;
  按右键,立即退出;

2、“数码相框”
  目录中文件列表浏览:显示另一页文件列表时,按下鼠标左键滑动,然后释放;
  按屏上60行,显示上一张图片;
  按屏中间,暂停;
  按屏下60行,显示下一张图片;
  长按屏中间并移动鼠标,退出界面;
  按右键,立即退出;

3、“拼图游戏”“触摸画板”“鼠标画板”“USB连接”“无线传书”
  正常操作,没有特殊要求

4、“系统时间”
  按右键,立即退出;
  按鼠标左键向左滑动,立即退出

5、“红外遥控”
  KEY2不起作用
  按左键,立即退出


鼠标函数:
Clear_Cursor(MY_Cursor.X,MY_Cursor.Y);
 将鼠标从TFT屏上清除,还原鼠标覆盖的颜色区。
Set_Cursor(MY_Cursor.X,MY_Cursor.Y);
 显示鼠标,并且保存鼠标覆盖的颜色区。
u8 lwzmouse_run(void)
 鼠标按键状态,具体看Hardware\ps2\mouse.c
//返回值0:没有任何按键按下
//返回值1:MouseLeftDown
//返回值2:MouserightDown
//返回值3:MousemiddleDown
//返回值4:MouseleftUp
//返回值5:MouserightUp
//返回值6:MousemiddleUp

鼠标函数用法:
1、鼠标移动:首先使用【Clear_Cursor】,再使用【Set_Cursor】

2、TFT上进入新画面,一般在while(1)前加载界面:首先使用【Clear_Cursor】,再显示新画面,最后执行【Set_Cursor】,进入while(1)循环
    例:在ptgame.c的459行【PTGame_Play】拼图游戏,首先执行【Clear_Cursor】,再【LCD_Clear(WHITE);//清屏】【Load_Game_ICO(PT_Size);//装载X*X界面】【Load_Game_PIC();//装载图片】,最后执行【Set_Cursor】,进入while(1)循环

3、TFT上画面的局部变化,一般在while(1)中:首先执行【Clear_Cursor】,再显示新的局部变化,最后执行【Set_Cursor】
    例:拼图游戏中小图会移动,与旁边的空格交换位置,这就是要求TFT屏显示的局部变化:
 在ptgame.c的525行开始,首先执行【Clear_Cursor】,再执行【Move_Pic(key,temp)】,最后执行【Set_Cursor】。

ALIENTEK MINISTM32 实验28 综合测试实验-鼠标操作版.rar

263.55 KB, 下载次数: 536

lwz_mouse.rar

316.5 KB, 下载次数: 442

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2010-12-21 10:53:15 | 显示全部楼层
回复【楼主位】liangwz:
-------------------------------
非常好!
晚上,我弄下来看看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2010-12-30 22:01:50 | 显示全部楼层
回复【楼主位】liangwz:
-------------------------------
程序挺好。刚刚测试了。 
不过还是有些BUG,具体如下:
1,电子书和数码相框,在进入浏览的时候,不能操控。
2,偶尔在复位的时候进入校准模式。
3,触摸屏完全不能用了。
4,USB连接这个界面,没做鼠标控制。
5,无线传输,也是同样的问题,鼠标无法控制。

不过,楼主已经很不错了。我有时间,考虑把这个做成鼠标板的,到时候参考楼主的代码。
另外,问一句,楼主没有我们的板子么?
看到你说土板子,看来是喜欢自己DIY了,我可以送你一个1.8的空板,给你自己回去焊接。到时候再来弄这个程序,就比较好搞了。呵呵。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2010-12-21
在线时间
1 小时
 楼主| 发表于 2010-12-31 20:44:18 | 显示全部楼层
回复【3楼】Admin:
-------------------------------
送我空板?好啊。我的两片STM32芯片是通过永德利向原子买的。如果方便,可以通过这种方式。
1、对于4和5是没做出来,说明里有讲的。
2、我没有触屏,删除“强制校准”,的确偶尔入校准模式。还未清楚为什么会这样。 因为没有经过校准,触屏就不能用?需要加入强制触屏程序吧。
3、鼠标偶尔不能操控,看来是难题。
我上传新的程序吧!其实,也给过原子。
但我发现:只要按KEY0,鼠标立即出错,程序自动初始化鼠标,鼠标就能使用了。
我还没搞清楚为什么鼠标偶尔失效。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2010-12-31 22:29:36 | 显示全部楼层
回复【4楼】liangwz:
-------------------------------
你把地址告诉我,我邮寄空板给你,不过运费自己负责。
触屏,我的程序会检测的,如果没有,最好初始化也别去初始化。
按住KEY0鼠标出错,是因为鼠标和KEY0用的同一数据线。
鼠标偶尔失效,不知道你是不是指的鼠标突然不动?然后又恢复。还是指的要复位才能正常的情况。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2010-12-21
在线时间
1 小时
 楼主| 发表于 2011-1-2 14:47:05 | 显示全部楼层
回复【5楼】正点原子:
-------------------------------
鼠标偶尔失效,就是鼠标突然不动。
按了KEY0后,PS2_Status的bit6错误标志位置位1,程序执行以下代码:
if(PS2_Status&0x40)
{  
  S2_Status=MOUSE;   //读数错误处理
  LED1=0;   
  while(Init_Mouse());//重新初始化鼠标
  LED1=1;
}
执行Init_Mouse后,鼠标就能使用。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-1-2 19:15:11 | 显示全部楼层
嗯,这是个不错的办法
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2010-12-21
在线时间
1 小时
 楼主| 发表于 2011-1-3 14:19:53 | 显示全部楼层
回复【7楼】正点原子:
-------------------------------
可惜鼠标突然不动时,PS2_Status的bit6错误标志位不为1。需要手动按KEY0,来令PS2_Status的bit6=1.
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-7-8
在线时间
0 小时
发表于 2011-7-12 09:43:36 | 显示全部楼层

试了一下,鼠标在主菜单滑动时,在非白色区域留下痕迹,可能是恢复原来的颜色有些问题,楼主这个问题如何处理?谢谢

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 17:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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