标签:
备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就根基会用emWin做项目,其他章节可以需要时再参考。emWin的TIMER是一个软件按时器,它以OS_TimeMS变量的值作为按时基准,而OS_TimeMS则通过一个硬件按时器每1ms中断加1,在emWin内部措施不停盘问OS_TimeMS的变革实现软件按时。
在很多应用场合,我们需要用到按时器,好比每隔一按时间盘问某一事件有没有被触发,每隔一按时间转变数字显示以实现动态计数,每隔一按时间显示一幅图片实现图片动画等等….
TIMER的使用是对照简单的(请阅读例程源码),不过有几个处所需要注意:(1)使用TIMER实现按时的精度是对照差的(但OS_TimeMS的值是精确的),如果需要精确按时请使用硬件按时器孕育产生中断实现。(2)用TIMER按时刷新数字或图片显示时,时间间隔不宜过短,好比需要实现一个毫秒级的计数器显示,,你固然不能每1ms刷新一次数字,对照合适的是每30ms刷新一次数字显示即可(即计数器每30ms变革一次)。(3)TIMER不会因为隐藏其父窗体而遏制计数(固然有措置惩罚惩罚的要领,请阅读例程源码)。
操作BmpCvt.exe工具(在Tool目录下)将动画BMP图片转成C文件,然后将此C文件插手emWin工程,并每隔100ms(WM_TIMER动静有效时)用IMAGE_SetBitmap()函数将差别图片设置给IMAGE控件即可(emWin内部会本身措置惩罚惩罚更新,无需我们费神):
在例程中,其实是供给了一个emWin实现图片动画的模板,用户需要做动画时只需要在此例程的根本上实现即可。还有就是由于emWin的模拟器是单显存显示,因此画面不免会有"扯破"现象,在双显存的GLCD上不会有这种现象:
源码/软件下载
emWin 2天速成实例教程004_软件按时器(Timer)和位图片动画