金牌会员
- 积分
- 1108
- 金钱
- 1108
- 注册时间
- 2018-11-6
- 在线时间
- 240 小时
|
发表于 2019-12-27 11:25:48
|
显示全部楼层
操作系统是以任务为基本单位,任务和任务之间交换数据必须通过操作系统的API来实现(例如:全局变量+关中断,消息邮箱,消息队列)
(一)、如何设计任务?
一、4个串口(串口1 +gprs+gps+rfid)
每个串口设计一个任务,在串口中断服务程序中释放信号量同步该任务。
二、键盘
键盘设计成一个周期性轮巡任务。
三、 蜂鸣器、LED
如果很重要,可以单独设计二个任务,但是任务数量太多,会造成系统实时性能降低。
如果不重要可以将这二部分内容放到按键任务中去,因为按键任务定时执行的呀!
(二)、任务之间如何交互信息
4个串口任务给液晶屏任务发送消息队列传送数据
键盘任务给液晶屏任务发送消息队列传输按键码
假如:规定消息队列自定义格式如下:
msg[0]=识别码 , msg[1]=传输字节数量 msg[2]---msg[n]=消息内容
则
1、串口1给液晶屏传输数据
msg[0] = 1 ---> 表示是串口1任务发送的消息
msg[1] = 10 ---> 表示串口1发送了10个有效数据
msg[2]---msg[11] = 串口1发送的数据
2、串口2给液晶屏传输数据
msg[0] = 2 ---> 表示是串口2任务发送的消息
msg[1] = 5 ---> 表示串口2发送了5个有效数据
msg[2]---msg[6] = 串口2发送的数据
3、串口1给液晶屏传输数据
msg[0] = 3
4、串口4给液晶屏传输数据
msg[0] = 4
5、键盘给液晶屏传输数据
msg[0] = 5 ---> 表示是键盘任务发送的消息
msg[1] = 1 ---> 表示键盘任务发送了1个有效数据
msg[2] ---> 按键码
|
|