📄 test.c
字号:
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: test.c
**创 建 人: 陈明计
**最后修改日期: 2003年7月2日
**描 述: 数据队列使用例子
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版 本: v1.0
** 日 期: 2003年7月2日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#define TASK_STK_SIZE 512
OS_STK TaskStk[TASK_STK_SIZE];
OS_STK TaskStartStk[TASK_STK_SIZE];
void TaskStart(void *data);
void TaskUart0Revice(void *pdata);
//OS_EVENT *ReMsgQeue; /*定义消息队列指针*/
//void *MsgQeueTb[2]; /*定义消息指针数组,队列长度为2*/
//OS_MEM *PartitionPt; /*定义内存分区指针*/
//uint8 Partition[2][8]; /*定义内存分区尺寸:每块8字节,共2块*/
uint8 Buf[19];
uint8 w,m;
// struct PassMode
// {
// uint8 passid[4];
// uint8 qiceng[2];
// uint8 age;
// uint8 daoceng[2];
// uint8 sex;
// uint8 time[4];
// uint8 weight[3];
// } Pass[10];
struct PassMode
{
uint16 passid;
uint8 qiceng;
uint8 age;
uint8 daoceng;
// uint8 sex;
uint16 time;
uint8 weight;
} Pass[2500];
//static uint8 mm;
/*********************************************************************************************************
** 函数名称: PC_DispChar
** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月1日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
// void PC_DispChar(uint8 *cp)
//{
// OS_ENTER_CRITICAL();
//
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// OS_EXIT_CRITICAL();
//}
/*********************************************************************************************************
** 函数名称: main
** 功能描述: c语言的主函数,由它启动多任务环境
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: PC_DispClrScr,OSInit,OSTaskCreate,OSStart
**
** 作 者: 陈明计
** 日 期: 2003年7月1日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 3);
OSStart();
return 0;
}
/*********************************************************************************************************
** 函数名称: TaskStart
** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月1日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TaskStart(void *pdata)
{
//uint8 err,*cp,*pt0;
pdata = pdata; /* 避免编译警告 */
OSTaskCreate(TaskUart0Revice, (void *)0,
&TaskStk[TASK_STK_SIZE - 1], 10); /* 创建任务 */
TargetInit(); /* 目标板初始化 */
for (;;)
{
OSTaskSuspend(3);
// cp=(uint8 *)OSQPend(ReMsgQeue,0,&err);
// pt0=cp;
//cp=Buf;
// PC_DispChar(cp);
// OS_ENTER_CRITICAL();
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// UART0Putch(*cp++);
// OS_EXIT_CRITICAL();
// OSTimeDly(1);
//OSTimeDly(OS_TICKS_PER_SEC/16);
//cp++;
/* 显示接收到的数据 */
//OSMemPut(PartitionPt,pt0);
}
}
/*********************************************************************************************************
** 函数名称: TaskUart0Revice
** 功能描述: μCOS-II的任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月1日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TaskUart0Revice(void *pdata)
{
uint8 temp,i,k;
uint16 j;
uint8 err;
uint16 p,t;
uint8 q,d,n;
// uint8 *cp,*pt0;
pdata = pdata; /* 避免编译警告 */
//ReMsgQeue=OSQCreate(&MsgQeueTb[0],2);
//PartitionPt=OSMemCreate(Partition,2,8,&err);
// cp=OSMemGet(PartitionPt,&err);
//pt0=cp;
for (;;)
{
for(j=0;j<2500;j++)
{
//err:
//cp = Buf;
for(k=0; k<2; k++)
{
while (UART0Getch() != 0xff); /* 接收数据头 */
for (i = 0; i < 9; i++)
{
temp = UART0Getch();
Buf[i+k*9]=temp;
}
}
// OSMboxPost(Uart0ReviceMbox, (void *)Buf);
// OSQPost(ReMsgQeue,(void *)pt0); //将得到数据的存放地址放入到消息队列中
//w=(int)(Buf[0]-48);
// m=(int)(Buf[0]-48)*5;
p=(int)(Buf[0]-48)*1000+(int)(Buf[1]-48)*100+(int)(Buf[2]-48)*10+(int)(Buf[3]-48);
q=(int)(Buf[4]-48)*10+(int)(Buf[5]-48);
d=(int)(Buf[9]-48)*10+(int)(Buf[10]-48);
t=(int)(Buf[11]-48)*1000+(int)(Buf[12]-48)*100+(int)(Buf[13]-48)*10+(int)(Buf[14]-48);
n=(int)(Buf[15]-48)*100+(int)(Buf[16]-48)*10+(int)(Buf[17]-48);
Pass[j].passid=p;
Pass[j].qiceng=q;
Pass[j].daoceng=d;
Pass[j].time=t;
Pass[j].weight=n;
w=Buf[7];
m=Buf[8];
// Pass[j].passid[0]=Buf[0];
// Pass[j].passid[1]=Buf[1];
// Pass[j].passid[2]=Buf[2];
// Pass[j].passid[3]=Buf[3];
// Pass[j].qiceng[0]=Buf[4];
// Pass[j].qiceng[1]=Buf[5];
Pass[j].age=(int)(Buf[6]-48);
// Pass[j].daoceng[0]=Buf[9];
// Pass[j].daoceng[1]=Buf[10];
// Pass[j].sex=Buf[9];
// Pass[j].time[0]=Buf[11];
// Pass[j].time[1]=Buf[12];
// Pass[j].time[2]=Buf[13];
// Pass[j].time[3]=Buf[14];
// Pass[j].weight[0]=Buf[15];
// Pass[j].weight[1]=Buf[16];
// Pass[j].weight[2]=Buf[17];
}
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -