📄 main.c
字号:
/*
*********************************************************************************************************
* 文件: Main.C
* 描述: 主程序文件.
* 编写: 深思 (001-12345@sohu.com).
*********************************************************************************************************
*/
#include "includes.h"
static void TestTask1(void *pdata);
static void TestTask2(void *pdata);
static void TestTask3(void *pdata);
#define TaskStkLeath 60 /* 任务堆栈大小. */
OS_STK TestTask1Stk[TaskStkLeath];
OS_STK TestTask2Stk[TaskStkLeath];
OS_STK TestTask3Stk[TaskStkLeath];
/*
********************************************************************************************************
* 函数: int main (void).
* 描述: 主程序函数.
********************************************************************************************************
*/
int main (void)
{
PINSEL0 = 0x00000000; // 设置所有管脚连接GPIO.
PINSEL1 = 0x00000000;
IODIR = LED1|LED2|LED3|LED4; // 设置 LED1-4 控制口为输出.
IOCLR = LED4;
IOCLR = LED3;
IOCLR = LED2;
IOCLR = LED1;
OSInit();
(void)OSTaskCreateExt(TestTask1,(void *)1,&TestTask1Stk[TaskStkLeath-1],1,0,&TestTask1Stk[0],TaskStkLeath,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
(void)OSTaskCreateExt(TestTask2,(void *)2,&TestTask2Stk[TaskStkLeath-1],2,0,&TestTask2Stk[0],TaskStkLeath,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
(void)OSTaskCreateExt(TestTask3,(void *)3,&TestTask3Stk[TaskStkLeath-1],3,0,&TestTask3Stk[0],TaskStkLeath,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSStart();
while(1);
}
/*
********************************************************************************************************
* 函数: void TestTask1(void *pdata).
* 描述: 任务1, 控制 LED1 闪烁.
********************************************************************************************************
*/
static void TestTask1(void *pdata)
{
pdata = pdata;
SysClkInit();
while(1) {
OSTimeDly(100); /* 随便改吧,可以产生不同效果哟. */
IOCLR = LED1;
OSTimeDly(50);
IOSET = LED1;
}
}
/*
********************************************************************************************************
* 函数: void TestTask2(void *pdata).
* 描述: 任务2, 控制 LED2 闪烁.
********************************************************************************************************
*/
static void TestTask2(void *pdata)
{
pdata = pdata;
while(1) {
OSTimeDly(10);
IOCLR = LED2;
OSTimeDly(30);
IOSET = LED2;
}
}
/*
********************************************************************************************************
* 函数: void TestTask3(void *pdata).
* 描述: 任务3, 控制 LED3 闪烁.
********************************************************************************************************
*/
static void TestTask3(void *pdata)
{
pdata = pdata;
while(1) {
OSTimeDly(50);
IOCLR = LED3;
OSTimeDly(60);
IOSET = LED3;
}
}
/*
********************************************************************************************************
* End.
********************************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -