您尚未登录。

楼主 #1 2020-03-20 16:51:40

ntmusic
会员
注册时间: 2020-02-24
已发帖子: 43
积分: 33

试试F1C100s的硬件游标HWC

准备在荔枝派Nano上玩LVGL,虽然接了电阻触摸屏,可是我这个荔枝派nano板子上并未有触摸的焊盘,原理图也找不到,那个空白的IC焊盘是啥。。有人和我的nano一样的版本吗,有的话能否告诉我一下这个触摸该怎么连接,我有空的时候再搞一下。
nano.jpg
现在手头没工具,但又想玩LVGL,正好F1C100s支持硬件游标,那正好,就用游标操作了。F1C100s的这个硬件游标确实非常简单,查看手册相关寄存器就那么几个。唯一麻烦的倒是游标的数据来源,是ARGB调色板索引数据,而且只有1,2,4bpp三种格式可用,不知道哪里可以找这样的软件转换,与其花时间去找,不如自己做一个。于是花了半个多小时做了一个数据提取工具,当然做的这个小工具只是负责把图片的颜色整理成颜色表和索引表,图片还得经过PS处理下。具体使用方法如下:
1.打开一张游标的图片,最好是PNG,颜色尽量不要太丰富,毕竟4bpp最大也就16色还包含了透明度。
2.在PS中依次点击图像-模式-索引颜色
PS1.jpg
3.3.在打开的索引颜色面板中,调板可以选择平均或局部(xxx),然后在颜色框中输入颜色值:1bpp为2色,2bpp为4色,4bpp为16色。然后勾选透明度(勾选透明度后,透明也算作一种颜色。如果原图并不是PNG图片,那就可以不勾选透明度,勾了也没用,这样生成的就是四四方方的游标图片)。
PS2.jpg
4.将更改模式后的图片另存为PNG图片。
5.打开F1c200sHWCDataMaker.exe小工具,选择需要转换成的颜色深度后,将刚才另存的图片拖进去,然后就会生成该颜色深度的颜色表和索引表的.h文了。
out.jpg
数据做好了,剩下就很简单了,将颜色表的值拷贝到F1C100s的DEBE HWC Palette Table寄存器组中,将索引表的值拷贝到DEBE HWC Pattern Memory Block中,然后在DEBE HWC Frame Buffer Format Register中配置一下游标宽高(只有32、64两种分辨率)以及颜色深度,最后在DEBE Mode Control Register中使能硬件游标即可。控制游标显示的位置,只需在DEBE HWC Coordinate Control Register中设置一下坐标即可,这样就完成了硬件游标的显示了。
通过实验发现,最大分辨率64*64模式下只有1bbp模式可以正确显示,32*32下1,2,4bbp都正确显示,不知道是啥原因,但一般32*32对于游标来说已经够大了,所以一般用32*32 4bpp模式来做游标显示效果很好。
下面是我做的显示效果
cur1.jpg
凑近看,可以看到我做的游标有半透效果【Alpha=0xA0】
cur2.jpg
工具在此,内含一个小光标图片,如果需要可以拿去使用。当然如果有更好的工具,也可推荐推荐
CursorMaker.rar

离线

楼主 #9 2020-03-23 09:51:57

ntmusic
会员
注册时间: 2020-02-24
已发帖子: 43
积分: 33

Re: 试试F1C100s的硬件游标HWC

gui401 说:

谢谢
楼主的小工具是用什么开发的?

C#开发的

离线

楼主 #10 2020-03-23 10:03:40

ntmusic
会员
注册时间: 2020-02-24
已发帖子: 43
积分: 33

Re: 试试F1C100s的硬件游标HWC

感谢达克罗德大神的FB驱动,在移植到RTT时再做了一些优化,剥离出图层和时序控制结构体,可以自由使用4个图层,并移植了Lvgl(版本6.1.1),同时使用硬件游标,由于USB暂未实现鼠标功能,游标数据通过串口2从PC端获得,PC端再写了一个小工具发送鼠标数据,这样就比较快的玩起了LVGL。效果如下视频。

代码还在整理,如大家感兴趣我可另开贴介绍

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn