本帖最后由 djz1992 于 2020-10-23 11:55 编辑
一直用的裸机,rtos看了有段时间了,信号量、队列、邮箱也看了,也操作了。
但是还是不明白怎么来把旧项目改写成RTOS项目。有起码一百个全局变量。
比如,就把项目分为以下几个线程:
1.温度采集
2.段码显示屏
3.按键检测
4.PTC控制
段码显示当前温度、当前运行剩余时间,在按键进入设置模式的时候,显示设置温度、设置运行时间。
按键,可以开关机,进入设置,加减值。
问题:那么当前温度、设置温度、当前时间、设置时间,这些参数,需要多个不同线程使用。该如何传递?
思路1:每个变量都创建一个队列,写的线程发出,使用的线程读取。这个好像比较简单,就当他是全局变量用。可以阻塞等待。
思路2:创建一个队列,把所有参数按设想的顺序排列好(像通信协议),每次传递都把所有值都传递。各线程定时获取所有数据,但仅解析自己用得到的那部分。
思路3:。。。。。
感觉做之前得把所有状态量都列出来,然后好好规划一下怎么传递。。。。@ufbycd 大佬,指点下。其实上述功能,用不到rtos,主要是用在联网设备上。
|