有个ucos问题困扰很久了
要做个系统,有很多级菜单,关于显示,想问下大家:1)在各个任务中直接调用显示函数;
这样做的麻烦在于显示不能重入,要在很多地方互斥的访问,编程比较凌乱。
2)把显示做成一个任务,然后各个任务发消息给显示任务,让显示任务自己的显示。
这样做的麻烦在于显示任务很庞大,可能要几十个画面的显示函数,而且有些画面给显示任务传递的数据很多。
请问大家是怎么做的?谢谢 把显示做成互拆。 硬邦邦 发表于 2019-7-2 16:51
把显示做成互拆。
你说的第一种吗 1在不可重入的函数内部实现互斥,代码就不乱了。 一锤子买卖选择方案一。
后期还需要维护的选方案二,显示单独成任务,以后添加功能啥的都很清楚。 肯定方案2,模块化才好维 yuguoliang 发表于 2019-7-2 20:17
肯定方案2,模块化才好维
赞同说法 uindex 发表于 2019-7-2 19:58
一锤子买卖选择方案一。
后期还需要维护的选方案二,显示单独成任务,以后添加功能啥的都很清楚。 ...
嗯,,,说的就是这个道理 方案2 合理 方案2做的, 单独一个任务, 每一个画面抽象出数据,将画面做一个分支显示。 方案2,出问题 好查,关于数据多的,不是可以用查询法访问显示吗 我一般用方案二,麻烦一次后续好维护。 建议楼主将 GUI 类的放置在最低的优先权内就对了。
磊磊映画 发表于 2019-7-3 09:09
方案2做的, 单独一个任务, 每一个画面抽象出数据,将画面做一个分支显示。 ...
你好,你的这句话很有道理每一个画面抽象出数据,将画面做一个分支显示。 具体这句话什么意思呢,,谢谢 youthvision 发表于 2019-7-3 09:10
方案2,出问题 好查,关于数据多的,不是可以用查询法访问显示吗
查询法访问显示什么意思 把显示做成一个任务,然后各个任务发消息给显示任务。其实还好的,系统内部的消息可以wait event方式,可设置1s超时间隔刷新屏幕。好用。 方案二,都是把显示函数放在一个task里面的 这样好管理的,出问题也方便查
页:
[1]