/*******************************************************************************
**版权信息 :
**文件名 : main.c
**作者 : Excellence2012
**版本号 : V1.0
**时间 : 2011-10-3
**功能描述 : 将UCOS-2移植到STM32上
*******************************************************************************
**修改功能 :
**遗留问题 :
**修改人 :
**修改时间 :
********************************************************************************/
#include "STM32Lib\\stm32f10x.h"
#include "yxarm.h"
#include "UCOSII\\ucos_ii.h"
#define TASK_STK_SIZE 512 /* 定义堆栈大小 */
/******************************
** 任务堆栈
*******************************/
OS_STK Task1Stk[TASK_STK_SIZE]; /* 定义任务1的堆栈大小【1K】*/
OS_STK Task2Stk[TASK_STK_SIZE]; /* 定义任务2的堆栈大小【1K】*/
/******************************
函数声明
******************************/
void Task1 (void *p_arg);
void Task2 (void *p_arg);
void DelayMs(u32 time); //延时函数
int main(void)
{
u8 os_err;
STM32_Init(); /* STM32初始化 */
OSInit(); /* UCOS-II的初始化 */
os_err = OSTaskCreate( Task1,(void *)0,&Task1Stk[TASK_STK_SIZE - 1],5); /* 创建一个任务 */
OSStart(); /* 启动操作系统管理 */
while(1);
}
void Task1(void *p_arg)
{
u8 os_err;
OS_CPU_SysTickInit(); /* 设置时间向量 */
os_err = OSTaskCreate( Task2,(void *)0,&Task2Stk[TASK_STK_SIZE - 1],6); /* 创建一个任务 */
for(;;)
{
BEEP_OFF; /* 关闭蜂鸣器 */
DelayMs(1000);
OSTimeDlyHMSM(0, 0, 2, 0);
}
}
void Task2(void *p_arg)
{
for(;;)
{
BEEP_ON; /* 打开蜂鸣器 */
DelayMs(1000);
}
}
void DelayMs(u32 time) /* 毫秒级延时,(随便写的) */
{
u32 i,j;
for(i=time;i>0;i--)
for(j=1000;j>0;j--);
}