|
#include "config.h"
#include "stdlib.h"
#define TaskStkLengh 64 //Define the Task0 stack length 定义用户任务0的堆栈长度
OS_STK TaskStk0 [TaskStkLengh]; //Define the Task0 stack 定义用户任务0的堆栈
OS_STK TaskStk1 [TaskStkLengh]; //Define the Task0 stack 定义用户任务1的堆栈
OS_STK TaskStk2 [TaskStkLengh]; //Define the Task0 stack 定义用户任务1的堆栈
void Task0(void *pdata); //Task0 任务0
void Task1(void *pdata); /*Tas1 任务1实现显示 */
void Task2(void *pdata); /*Tas1 任务1实现显示 */
/****************************************************************************
* 名称:main()
* 功能:主程序从这里开始运行
* 入口参数:
****************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(Task0,(void *)0, &TaskStk0[TaskStkLengh - 1], 2);
OSTaskCreate(Task1,(void *)0, &TaskStk1[TaskStkLengh - 1], 3);
OSTaskCreate(Task2,(void *)0, &TaskStk2[TaskStkLengh - 1], 4);
OSStart();
return 0;
}
/*********************************************************************************************************
** Task0 任务0
********************************************************************************************************/
void Task0 (void *pdata)
{
pdata = pdata; /*防止编译器警告 */
TargetInit(); /*硬件初始化 */
PINSEL0= 0;
IO0DIR = 7;
while(1)
{
OSTimeDly(2);
IO0SET = 1;
OSTimeDly(10);
IO0CLR = 1;
}
}
void Task1 (void *pdata)
{
pdata = pdata; /*防止编译器警告 */
while(1)
{
OSTimeDly(20);
IO0SET = (1<<1);
OSTimeDly(20);
IO0CLR = (1<<1);
}
}
void Task2 (void *pdata)
{
pdata = pdata; /*防止编译器警告 */
while(1)
{
OSTimeDly(50);
IO0SET = (1<<2);
OSTimeDly(50);
IO0CLR = (1<<2);
}
}
这是我采用的main()函数,模板是使用Ucosii 2.52 for lpc2100里面的配置,直接移植过来的。但是使用过程中,灯只能常亮。不会闪烁。 |
|