分享几个DGUS切换页面动效的实例

2019-12-17 21:30发布

本帖最后由 CCN 于 2018-10-11 16:05 编辑

实际效果拍了视频,供大家参考:
https://v.qq.com/x/page/l0739g42zxf.html?pcsharecode=tTqssuQs&sf=uri
      https://v.qq.com/x/page/l07392zqr19.html?pcsharecode=Xsi3XRZT&sf=uri


如上的效果是利用了DGUS的“剪切图片区域”指令,将全屏图片逐步剪切至当前页面上,控制剪切过程即可实现相应的动画效果。剪切过程可以按顺序剪切,也可以打乱了顺序剪切,排列组合的方式有很多种。视频中选用了基于T5 CPU的DGUS II产品,DGUS运行周期为40ms,可以实现非常流畅细腻的动画效果。在实际应用过程中,即便是使用115200的波特率情况下,不间断的向DGUS II屏发送指令,DGUS II都能够处理过来,不必担心串口缓冲区溢出。

方法详解
1、在每个界面做一个基本图形控件,然后单片机按照40ms-50ms的频率发送图形剪切的指令。基本图形可以都用同一个地址,将基本图形控件置后,每次在切换页面之前,已经把待切换的页面图片先剪切到了基本图形控件上面,所以基本图形地址也无须清零剪切图像。
2、在界面上做一个按键返回,按键返回传值给单片机,如:5A A5 06 83 10 01 01 00 0A 单片机收到了这个按键返回协议。
3、发送基本图形剪切指令,如果需要从左上角往右下角下剪切,例如480x272分辨率的屏,可以将xe和ye的坐标按照+30和+17的坐标像素点,大概在16个增量周期,从左上角至右下角逐步剪切至满屏显示,这中间消耗的时间为16*40ms=640ms,这个时间在500ms左右。
4、待剪切的指令完成,再发送切换页面指令,例如 5A A5 07 82 0084 5A01 0001 (0001为切换到1号页面)

DGUS II屏基本图形剪切指令解析
5A A5 15 82 2000 0006 0001<pic_ID> xs ys xe ye x y
2000表示变量地址0x2000
0006表示基本图形的剪切指令
0001表示剪切的图片个数1
<pic_ID>表示被前切的页面号如0002表示图片位置02
xs  表示被剪切的页面的左上角起始x坐标
ys  表示被剪切的页面的左上角起始y坐标
xe  表示被剪切的页面的右下角起始x坐标
ye  表示被剪切的页面的右下角起始y坐标
x   表示基本图形控件显示的剪切位置起始x坐标
y   表示基本图形控件显示的剪切位置起始y坐标

如5A A5 15 82 2000 0006 0001 0002 0032 0032 0064 0064 0033 0033,表示把02页面的坐标区域(50,50)(100,100)剪切到基本图形框2000地址的(51,51)位置。

附件是用OS做的程序,供大家参考。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。