背景:有三个任务,他们都需要操作数码管。每个任务对应三个数码管,共9个数码管。硬件上9个数码管的控制使用一套硬件完成。
策略:每个任务都往自己的队列里面发数据,单独建立一个监听任务:处理所有队列的数据。(监听任务的执行频次要比任务发送队列的快)。
1、建立队列数组local_mq[标号],每个下标号0、1、2代表对应任务任务1、2、3;
每个队列可以有20个数据,类型是_a_seg_t
2、listen监听任务,守护任务
listen_seg_req轮询每个队列是否有数据,不等待轮询,有数据马上处理。
3、给队列发送数据的任务(有三个任务,只举例一个任务的发送情况,其他两个类似)
以上代码例子来自韦东山的三人射球机项目