51单片机实现菜单问题
2021-07-07 来源:eefocus
这个思路应该是没问题的,但是需要设置的状态量啥的有点多,还有一些菜单项的id值啥的都不能冲突,还有那个按键扫描填充状态值函数,理论上是具有可实现性的,估计也得动会脑筋或者还会有各种bug。这个菜单系统对于具有深层次菜单项时候优势才明显,其实一般做的菜单,就用那个已经成熟且我多次用的结构体方式实现的就足够了,而且很容易实现。我现在就不需要花大量精力去思考这个如何完善和实现性了(而且emwein那些gui早就考虑过这些问题了),还是需要思考更重要,更有价值有意义的问题,操作系统内核的实现
关于12864屏幕上绘制菜单图标,圆形,矩形啥的,没必要深入去研究,只要会画一个具有代表性的矩形即可,实际上这些直接用取模的方式更加直接明了,只是多占用一点flash罢了,但是运行更快。
关于多个图标选中某一个的显示问题,可以用图层的思维,底层图片实际上是不变的,仅仅改变上层图的位置即可,但是这样也是要每次移动后,都要重新显示一遍底层图和上层图,这样的话跟结构体菜单那个每次都重新更新一张重做的图也是一样的意思了,只是提取了共用的地图,每次少载入点数据量罢了,少用点flash了,而且每一页只有少量菜单的时候,这种方式反而笨重无明显优势。但是结构体菜单那样的更新方式实际上是一种暴力直接更新,反而更容易实现和逻辑清晰明了,更方便。
总结来说,在这些小型嵌入式设备上,ui都是非常简单的,菜单项也是非常少的,所以用简单直接的暴力取模方式,更容易实现和稳定可靠简便。刚刚说的那些ui,更新图标方式都是在电脑端,手机端这样的大屏幕多菜单情况用才最有优势最合适。
上一篇:C51 手动计算定时器 中断简介
下一篇:51单片机 ret和reti