Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20502
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-08 23:32
文章分类

全部博文(23)

文章存档

2013年(23)

我的朋友

分类: C/C++

2013-08-12 12:09:49

原文地址:ucosII之消息队列 作者:number007cool

#include "task_in.h"
 

OS_EVENT *q;    //定义消息队列指针
#define QSIZE 16   //定义消息队列的长度
void *msg[QSIZE];   //定义消息指针数组
INT16U dly[QSIZE];

void task1(void *pdata)
{
 INT8U err;
 INT16U *pd;
 INT8U chl=0;
 INT16U nodeid=0x110;
 BYTE  data[]={0,1,2,3,4,5,6,7};
 INT8U  len=8;
 BOOLEAN extflag=0;
 BOOLEAN rmtflag=0;
 //创建消息队列,长度为16条消息
    q=OSQCreate(msg,QSIZE);
 pdata=pdata;
 while(1)
 {
    
  pd=(INT16U *)OSQPend(q,0,&err);
  Led_Ctl(LED_RUN, 1);
  OSTimeDly(*pd);//延时时间由*pd传递的参数决定
  Led_Ctl(LED_RUN, 0);
  OSTimeDly(500);
  //发送串口数据
  SerPort_SendBuf(COM2,"TEST OK!\r\n",10);
     //发送can帧
     SendFrame(chl,nodeid,data,len,extflag,rmtflag);
     //SendFrame(1,nodeid,data,len,extflag,rmtflag);
 }
}
 
void task2(void *pdata)
{
 int i;
 pdata=pdata;
 for(i=0;i {
  dly[i]=i*200;//存储延时参数
 }
 while(1)
 {
  for(i=0;i   OSQPost(q,&dly[i]);
  OSTimeDly(QSIZE*QSIZE*20);
 }

}
闪灯的频率逐渐变慢,慢到极点后又重新由快变慢。
阅读(461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~