#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);
}
}
闪灯的频率逐渐变慢,慢到极点后又重新由快变慢。
阅读(4212) | 评论(0) | 转发(1) |