?? ex1.c
字號:
/**************************************************************************
* *
* PROJECT : ARM port for UCOS-II *
* *
* MODULE : EX1.c *
* *
* AUTHOR : Michael Anburaj *
* URL : http://geocities.com/michaelanburaj/ *
* EMAIL: michaelanburaj@hotmail.com *
* *
* PROCESSOR : Any processor *
* *
* IDE : Any IDE *
* *
* DESCRIPTION : *
* This is a sample code to test UCOS-II. *
* *
**************************************************************************/
#include "includes.h"
#include "consol.h"
#include "adc.h"
#include "lcd.h"
#include "oscillograph.h"#include "adda.h"
/* ********************************************************************* */
/* Global definitions */
/* ********************************************************************* */
/* File local definitions */
#define TASK_STK_SIZE 256 /* Size of each task's stacks (# of WORDs) */
#define NO_TASKS 1 /* Number of identical tasks */
OS_STK Task1Stk[TASK_STK_SIZE]; /* Task #1 task stack */
OS_STK TaskStartStk[TASK_STK_SIZE];
char TaskData[NO_TASKS]; /* Parameters to pass to each task */
OS_EVENT *RandomSem;
/* ********************************************************************* */
/* Local functions */
void Task1(void *data)
{
unsigned char adc_data[50] = {0}; unsigned char data_bak[50] = {0}; clear_lcd(); while ( 1 ) { /* display oscillograph */ draw_interface(); /*adc, the datas are stored in adc_data[] */ adda_sample(adc_data, 50); /* convert adc data to coordinates */ data2pixel(adc_data,50); /* erase waveform pre-drawn*/ erase_wave(data_bak, 50); /* display waveform here */ draw_wave(adc_data, 50); /* backup adc data */ backup_data(data_bak, adc_data, 50);
OSTimeDly(200);
}
}
void TaskStart (void *data)
{
U8 i;
data = data; /* Prevent compiler warning */
CONSOL_Printf("uC/OS-II, The Real-Time Kernel ARM Ported version\n");
//CONSOL_Printf("Jean J. Labrosse/ (Ported by) Michael Anburaj\n");
CONSOL_Printf("EXAMPLE #1\n");
FRMWRK_vStartTicker(OS_TICKS_PER_SEC); /* The Tick timer is started much earlier */
OSStatInit(); /* Initialize uC/OS-II's statistics */
for (i = 0; i < NO_TASKS; i++)
{ /* Create NO_TASKS identical tasks */
TaskData[i] = '0' + i; /* Each task will display its own letter */
//CONSOL_Printf("#%d",i);
//OSTaskCreate(Task1,&TaskData[i], &TaskStk[i][TASK_STK_SIZE - 1], i + 1);
}
OSTaskCreate(Task1,(void *)0, &Task1Stk[TASK_STK_SIZE - 1], 20);
while(1)
{
CONSOL_Printf("\n# Parameter1: No. Tasks %d\n", OSTaskCtr); /* Display #tasks running */
CONSOL_Printf("# Parameter2: CPU Usage in %% %d %\n",OSCPUUsage); /* Display CPU usage in % */
//CONSOL_Printf("# Parameter3: CPU Usage in %% %d %\n",OSCtxSwCtr);
//OSCtxSwCtr = 0;
i = CONSOL_Readc( );
if (1 == i)
{
CONSOL_Printf( "uc/os is quit!");
return;
}
//OSTimeDly(32768);
OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
}
}
/* ********************************************************************* */
/* Global functions */
void APP_vMain (void)
{
OSInit(); /* Initialize uC/OS-II */
RandomSem = OSSemCreate(1); /* Random number semaphore */
OSTaskCreate(TaskStart, 0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
//FRMWRK_vStartTicker(OS_TICKS_PER_SEC); /* os_cfg.h */
OSStart(); /* Start multitasking */
}
/* ********************************************************************* */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -