第十三篇?在ucosiii下,给触摸屏和转速添加消息队列支持
时间:10-02
整理:3721RD
点击:
这次主要记录消息队列的使用方法:1.把触摸屏的键值放到消息队列中去,这样可以在多个任务中读取键值,进行相应的操作,提高了效率.
2.把转速的值也放到消息队列中去
关键的代码:
初始化两个消息队列
放一些效果图片看看吧:
没有触摸
一点触摸
两点触摸
完整的代码在github上
https://github.com/iysheng/chicken
2.把转速的值也放到消息队列中去
关键的代码:
初始化两个消息队列
- void MessQueue_Init (void)
- {
- OS_ERR p_err;
- OSQCreate (&KEY_Q,
- "Touch key messgae queue",
- 5,
- &p_err);
- if(p_err!=OS_ERR_NONE)
- APP_TRACE_INFO(("Create KEY_Q failed.\r\n"));
- OSQCreate (&RPM_Q,
- "Round per minnet messgae queue",
- 5,
- &p_err);
- if(p_err!=OS_ERR_NONE)
- APP_TRACE_INFO(("Create RPM_Q failed.\r\n"));
- }
- OSQPost (&KEY_Q,
- (void *)(&(tp_dev.x[0])),
- 1,
- OS_OPT_POST_FIFO + OS_OPT_POST_ALL,
- &os_err);//发送消息队列
- key_value=(uint16_t *)OSQPend (&KEY_Q,
- 1000,
- OS_OPT_PEND_BLOCKING,
- &msg_size,
- NULL,
- &os_err);
- rpm_value=(uint32_t *)OSQPend (&RPM_Q,
- 1000,
- OS_OPT_PEND_BLOCKING,
- &msg_size,
- NULL,
- &os_err);
- OSQPost (&RPM_Q,
- (void *)&ic_value[0],
- 1,
- OS_OPT_POST_FIFO + OS_OPT_POST_ALL,
- &err);
放一些效果图片看看吧:
没有触摸
一点触摸
两点触摸
完整的代码在github上
https://github.com/iysheng/chicken