?? main.c
字號:
/****************************************************
公司: 三揚科技 SUNYUNGCO
日期: 2004年8月17日
****************************************************/
#include "../ucos_ii/ucos_ii.h" /* uC/OS interface */
#include "../inc/44blib.h"
#include "../inc/44b.h"
#include "../inc/option.h"
#include "../inc/target.h"
/* allocate memory for tasks' stacks */
#ifdef SEMIHOSTED
#define STACKSIZE (SEMIHOSTED_STACK_NEEDS+64)
#else
#define STACKSIZE_H 8192
#define STACKSIZE_L 512
#endif
OS_STK Stack0[STACKSIZE_L];
OS_STK Stack1[STACKSIZE_L];
OS_STK Stack2[STACKSIZE_L];
OS_STK Stack3[STACKSIZE_L];
OS_EVENT *UartSem;
OS_EVENT *KeySem;
/*-----------------------------------------------------------------------------------*/
void TaskLED(void *i)
{
for (;;)
{
/* ----------- LED Control -------------*/
rPDATE=(rPDATE|0x0f0)&0x1ef; //GPE4=0 LED1 TOUT1 1110
OSTimeDly(200);
rPDATE=(rPDATE|0x0f0)&0x1df; //GPE5=0 LED2 TOUT2 1101
OSTimeDly(200);
rPDATE=(rPDATE|0x0f0)&0x1bf; //GPE6=0 LED3 TOUT3 1011
OSTimeDly(200);
rPDATE=(rPDATE|0x0f0)&0x17f; //GPE7=0 LED4 TOUT4 0111
OSTimeDly(200);
rPDATE=(rPDATE|0x0f0)&0x1af; //GPE4,6=0 LED1,3 TOUT1,3 1010
OSTimeDly(200);
rPDATE=(rPDATE|0x0f0)&0x15f; //GPE5,7=0 LED2,4 TOUT2,4 0101
OSTimeDly(200);
rPDATE=rPDATE&0x10f; //GPE4-7=0 LED4-7 TOUT4-7 0000
OSTimeDly(200);
/* ----------- LED Control -------------*/
/* ----------- Buzzer Control -------------*/
rPDATE=(rPDATE|0x0f8); //GPE3=1
OSTimeDly(60);
rPDATE=rPDATE&0x1f7; //GPE3=0
OSTimeDly(60);
/* ----------- LED Control -------------*/
}
}
void TaskKey(void *i)
{
INT8U err;
void *msg;
for (;;)
{
msg = OSMboxPend(KeySem, 0, &err);
OSSemPend(UartSem, 0, &err);
Uart_Printf("msg = %d\n", msg);
OSSemPost(UartSem);
}
}
void TaskUart(void *i)
{
for (;;)
{
OSSemPend(UartSem, 0, &err);
Uart_Printf("My FYP\n");
OSSemPost(UartSem);
OSTimeDly(2000);
}
}
void TaskStart(void *i)
{
INT8U err;
ARMStartTimer();
OSStatInit();
for(;;)
{
OSTimeDly(2000);
OSSemPend(UartSem, 0, &err);
Uart_Printf("++++++++++++++++++++++++++++++++++++++ ");
Uart_Printf("OSCPUUsage = %d%% \n",OSCPUUsage);
OSSemPost(UartSem);
}
}
/*
* Main function.
*/
void Main(void)
{
char Id0 = '1';
char Id1 = '2';
char Id2 = '3';
char Id3 = '4';
ARMTargetInit();
Uart_Printf("OSrunning\n");
OSInit();
OSTimeSet(0);
UartSem = OSSemCreate(1);
KeySem = OSMboxCreate((void *)0);
/*
* create the tasks in uC/OS and assign decreasing
* priority to them
*/
OSTaskCreate(TaskStart, (void *)&Id0, (void *)&Stack0[STACKSIZE_L - 1], 1);
OSTaskCreate(TaskLED, (void *)&Id1, (void *)&Stack1[STACKSIZE_L - 1], 51);
OSTaskCreate(TaskKey, (void *)&Id2, (void *)&Stack2[STACKSIZE_L - 1], 50);
OSTaskCreate(TaskUart, (void *)&Id3, (void *)&Stack3[STACKSIZE_L - 1], 59);
/* Start the system running */
ARMTargetStart();
/* start the system */
OSStart();
/* never reached */
} /* main */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -