⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 嵌入式操作系统 arm-ucos2041
💻 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 + -