|
- /******************************************************************************
- * File : main.c
- * Function : 主文件
- * Description: None
- * Version : V1.00
- * Author : WXP
- * Date :
- * History :
- ******************************************************************************/
-
- #include "includes.h"
-
-
- //START 任務
- //設置任務優先級
- #define START_TASK_PRIO 10 //開始任務的優先級設置為最低
- //設置任務堆棧大小
- #define START_STK_SIZE 64
- //任務堆棧
- OS_STK START_TASK_STK[START_STK_SIZE];
- //任務函數
- void start_task(void *pdata);
-
- //LED0任務
- //設置任務優先級
- #define LED0_TASK_PRIO 7
- //設置任務堆棧大小
- #define LED0_STK_SIZE 64
- //任務堆棧
- OS_STK LED0_TASK_STK[LED0_STK_SIZE];
- //任務函數
- void led0_task(void *pdata);
-
-
- //LED1任務
- //設置任務優先級
- #define LED1_TASK_PRIO 6
- //設置任務堆棧大小
- #define LED1_STK_SIZE 64
- //任務堆棧
- OS_STK LED1_TASK_STK[LED1_STK_SIZE];
- //任務函數
- void led1_task(void *pdata);
-
- int main(void)
- {
-
- Bsp_Init();
- OSInit();
- OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//創建起始任務
- OSStart();
-
- while(1)
- {
-
- }
- }
-
-
- //開始任務
- void start_task(void *pdata)
- {
- OS_CPU_SR cpu_sr=0;
- pdata = pdata;
- OS_ENTER_CRITICAL(); //進入臨界區(無法被中斷打斷)
- OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);
- OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);
- OSTaskSuspend(START_TASK_PRIO); //掛起起始任務.
- OS_EXIT_CRITICAL(); //退出臨界區(可以被中斷打斷)
- }
-
-
-
-
- //LED0任務
- void led0_task(void *pdata)
- {
- while(1)
- {
- LED2(ON);
- OSTimeDlyHMSM(0,0,0,200);
- LED2(OFF);
- OSTimeDlyHMSM(0,0,0,200);
- }
- }
-
- //LED1任務
- void led1_task(void *pdata)
- {
- while(1)
- {
- LED3(ON);
- OSTimeDlyHMSM(0,0,0,500);
- LED3(OFF);
- OSTimeDlyHMSM(0,0,0,500);
- }
- }
復制代碼
|
評分
-
查看全部評分
|