Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2006510
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类: C/C++

2012-07-27 16:54:58

#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);
 }

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