📄 appmain.c
字号:
#include "INCLUDES.H"
#define TASK_STK_SIZE 128
extern void vInitLED(void);
extern void vLEDOn(void);
extern void init_Tick(void);
OS_STK TaskStartStk[TASK_STK_SIZE];
OS_STK Task1Stk[TASK_STK_SIZE];
OS_STK Task2Stk[TASK_STK_SIZE];
OS_STK Task3Stk[TASK_STK_SIZE];
OS_STK Task4Stk[TASK_STK_SIZE];
OS_EVENT *Mbox1;
OS_EVENT *Mbox2;
OS_EVENT *Mbox3;
OS_EVENT *Mbox4;
#define TASK_START_PRIO 10
#define TASK_1_PRIO 12
#define TASK_2_PRIO 13
#define TASK_3_PRIO 14
#define TASK_4_PRIO 15
extern void vInitLED( void );
extern void vInitKey( void );
extern void vLEDOn( void );
extern void vLEDOff( void );
extern void vSingleOn(unsigned char number);
extern void vSingleOff(unsigned char number);
static void TaskStartCreateTasks(void);
void TaskStart(void *pdata);
void Task1(void *pdata);
void Task2(void *pdata);
void Task3(void *pdata);
void Task4(void *pdata);
void main(void)
{
OSInit();
vInitLED();
vInitKey();
OSTaskCreate(TaskStart,(void *)0,&TaskStartStk[TASK_STK_SIZE-1],TASK_START_PRIO);
OSStart();
}
void TaskStart(void *pdata)
{
pdata=pdata;
init_Tick();
Mbox1 = OSMboxCreate((void *)0);
Mbox2 = OSMboxCreate((void *)0);
Mbox3 = OSMboxCreate((void *)0);
Mbox4 = OSMboxCreate((void *)0);
TaskStartCreateTasks();
while(1)
{
asm(" nop ");
OSCtxSwCtr = 0; /* Clear context switch counter */
OSTimeDly(10);
}
}
static void TaskStartCreateTasks (void)
{
OSTaskCreate(Task1,(void *)0,&Task1Stk[TASK_STK_SIZE-1],TASK_1_PRIO);
OSTaskCreate(Task2,(void *)0,&Task2Stk[TASK_STK_SIZE-1],TASK_2_PRIO);
OSTaskCreate(Task3,(void *)0,&Task3Stk[TASK_STK_SIZE-1],TASK_3_PRIO);
OSTaskCreate(Task4,(void *)0,&Task4Stk[TASK_STK_SIZE-1],TASK_4_PRIO);
}
void Task1 (void* pdata)
{
INT8U err;
INT16U time;
for (;;) {
OSMboxPend(Mbox1, 0, &err);
vSingleOff(1);
OSTimeDly(100);
vSingleOn(1);
}
}
void Task2 (void* pdata)
{
INT8U err;
pdata=pdata;
for (;;) {
OSMboxPend(Mbox2, 0, &err);
vSingleOff(2);
OSTimeDly(100);
vSingleOn(2);
}
}
void Task3 (void* pdata)
{
INT8U err;
INT16U time;
for (;;) {
OSMboxPend(Mbox3, 0, &err);
vSingleOff(3);
OSTimeDly(100);
vSingleOn(3);
}
}
void Task4 (void* pdata)
{
INT8U err;
INT16U time;
for (;;) {
OSMboxPend(Mbox4, 0, &err);
vSingleOff(4);
OSTimeDly(100);
vSingleOn(4);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -