?? main.c
字號:
#include "OS_Includes.h"
//PORTB bit4-bit7 for to drive LED1-LED4.
#define LED1_ON() (PORTB |= (0x1<<4))
#define LED1_OFF() (PORTB &= ~(0x1<<4))
#define LED2_ON() (PORTB |= (0x1<<5))
#define LED2_OFF() (PORTB &= ~(0x1<<5))
#define LED3_ON() (PORTB |= (0x1<<6))
#define LED3_OFF() (PORTB &= ~(0x1<<6))
#define LED4_ON() (PORTB |= (0x1<<7))
#define LED4_OFF() (PORTB &= ~(0x1<<7))
#define INIT_LED_Drv() (DDRB |= 0xf0) //PORTB bit4-bit7 used to LED1-LED4
void TaskA(void);
#define TaskAPrio 1 //聲明任務TaskA(void)的優先級。
OS_STK TaskAStk[MAX_STK_SIZE]; //聲明任務TaskA(void)的堆棧空間。
void TaskB(void);
#define TaskBPrio 2 //聲明任務TaskB(void)的優先級。
OS_STK TaskBStk[MAX_STK_SIZE]; //聲明任務TaskB(void)的堆棧空間。
void TaskC(void);
#define TaskCPrio 3 //聲明任務TaskC(void)的優先級。
OS_STK TaskCStk[MAX_STK_SIZE]; //聲明任務TaskC(void)的堆棧空間。
int main(void)
{
wdt_disable();
OSInit(); //初始化OS任務控制塊(initialization OSTCB)。
OSTaskCreate(TaskA,&TaskAStk[MAX_STK_SIZE-1],TaskAPrio); //建立任務TaskA(void)。
OSTaskCreate(TaskB,&TaskBStk[MAX_STK_SIZE-1],TaskBPrio); //建立任務TaskB(void)。
OSTaskCreate(TaskC,&TaskCStk[MAX_STK_SIZE-1],TaskCPrio); //建立任務TaskC(void)。
INIT_LED_Drv();
OSStart(); //起動OS。
while (1)
{
LED1_ON();
OSTaskResume(TaskAPrio);
// OSTaskSuspend(OS_TASK_Me);
OSTimeDly(1);
LED1_OFF();
OSTimeDly(1);
}
}
void TaskA(void)
{
while (1)
{
OSTaskResume(Task_main_Prio);
LED2_ON();
OSTimeDly(2);
LED2_OFF();
OSTimeDly(2);
}
}
void TaskB(void)
{
while (1)
{
LED3_ON();
OSTimeDly(3);
LED3_OFF();
OSTimeDly(3);
}
}
void TaskC(void)
{
while (1)
{
LED4_ON();
OSTimeDly(5);
LED4_OFF();
OSTimeDly(5);
}
}
/*
//hook function for user App --- 時鐘節拍回掉函數
void AppTickHook()
{
}
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -