📄 main1.c
字号:
/*
*************************************************************************************************************
* ----------------------
* 工业PDA的主调试程序
* ----------------------
* 文件名称 : main.C
*
* 文件说明 :
*
*
* 文件作者 :
*
* 作者单位 :北京合众思壮科技有限责任公司
*
* 创建日期 :
*
* 版本声明 : V1.0
* -----------------------------------------------------------------------------------------------------------
* 修改日期 :
*
* 修改作者 :
*
* 修改内容 :
*
* 版本声明 :
*
* 目前功能 :
* -----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
#include "..\inc\config.h"
#include <stdio.h>
//#define LCD rPDATE=rPDATE|(1<<3);
#define TASKSTART_STKSIZE 256
#define TASKKEY_STKSIZE 256
#define TASKUART0_STKSIZE 256
#define TASKGUI_STKSIZE 512
#define TASKCHECK_STKSIZE 256
OS_STK TaskStart_Stk[TASKSTART_STKSIZE];
OS_STK TaskKey_Stk[TASKKEY_STKSIZE];
OS_STK TaskUart0_Stk[TASKUART0_STKSIZE];
OS_STK TaskGui_Stk[TASKGUI_STKSIZE];
OS_STK TaskCheck_Stk[TASKCHECK_STKSIZE];
OS_EVENT *Q_Gui;
#define MSGARRAY_GUI_SIZE 64
void *MsgArray_Gui[MSGARRAY_GUI_SIZE];
OS_STK_DATA stk;
void TaskStart(void *Id);
void TaskKey(void *Id);
void TaskUart0(void *Id);
void TaskGui(void *Id);
void TaskCheck(void *Id);
int Main(void)
{
Target_Init();
OSInit();
OSTaskCreateExt(TaskStart, (void *)0, &TaskStart_Stk[TASKSTART_STKSIZE - 1], 2,
2, &TaskStart_Stk[0], TASKSTART_STKSIZE, (void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
OSStart();
return(1);
}
void TaskStart(void *Id)
{
Rtc_Tick_Init();
OSStatInit();
Q_Gui = OSQCreate(MsgArray_Gui, MSGARRAY_GUI_SIZE);
OSTaskCreateExt(TaskKey, (void *)0, &TaskKey_Stk[TASKKEY_STKSIZE - 1], 10,
10, &TaskKey_Stk[0], TASKKEY_STKSIZE, (void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskUart0, (void *)0, &TaskUart0_Stk[TASKUART0_STKSIZE - 1], 11,
11, &TaskUart0_Stk[0], TASKUART0_STKSIZE, (void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskGui, (void *)0, &TaskGui_Stk[TASKGUI_STKSIZE - 1], 48,
48, &TaskGui_Stk[0], TASKGUI_STKSIZE, (void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskCheck, (void *)0, &TaskCheck_Stk[TASKCHECK_STKSIZE - 1], 56,
56, &TaskCheck_Stk[0], TASKCHECK_STKSIZE, (void *)0,
OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
while(1) {
OSTimeDlyHMSM(0,0,1,0);
}
//OSTaskDel(OS_PRIO_SELF);
}
void TaskKey(void *Id)
{
INT16U msggui=1;
while(1) {
OSQPost(Q_Gui, &msggui);
OSTimeDlyHMSM(0,0,0,52);
msggui++;
if(msggui>5)
msggui=1;
}
}
void TaskUart0(void *Id)
{
INT16U msggui;
while(1) {
if(rUTRSTAT0 & 0x1) { //Receive data read
msggui=RdURXH0();
WrUTXH0(msggui);
OSQPost(Q_Gui, &msggui);
}
OSTimeDly(1);
}
}
void TaskGui(void *Id)
{
INT16U *msggui;
INT8U err;
char str[64];
INT16U cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;
GUI_Init();
GUI_Clear();
GUI_SetFont(&GUI_Font8x16x2x2);
GUI_DispStringAt("UniStrong.com",0,0);
GUI_SetFont(&CHINESE_FONT16);
GUI_DispStringAt(CN_start"北京合众思壮科技有限责任公司"CN_end,0,32);
GUI_SetFont(&GUI_Font8x16);
GUI_DispStringAt("www.UniStrong.com",0,48);
GUI_SetFont(&CHINESE_FONT12);
GUI_DispStringAt(CN_start"北京合众思壮科技有限责任公司"CN_end,0,64);
GUI_SetFont(&GUI_Font8x16);
while(1) {
msggui = (INT16U *)OSQPend(Q_Gui, 0, &err);
if((*msggui)==1) {
sprintf(str,"%05u", cnt1);
cnt1++;
GUI_DispStringAt(str, 0,100);
}
else if((*msggui)==2) {
sprintf(str,"%05u", cnt2);
cnt2++;
GUI_DispStringAt(str, 48,100);
}
else if((*msggui)==3) {
sprintf(str,"%05u", cnt3);
cnt3++;
GUI_DispStringAt(str, 96,100);
}
else if((*msggui)==4) {
sprintf(str,"%05u", cnt4);
cnt4++;
GUI_DispStringAt(str, 144,100);
}
else if((*msggui)==48) {
sprintf(str,"%05u", cnt5);
cnt5=cnt5+2;
GUI_DispStringAt(str, 192,100);
}
else if((*msggui)==1002) {
sprintf(str, "ST2: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
GUI_DispStringAt(str, 0,128);
}
else if((*msggui)==1010) {
sprintf(str, "Key10: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
GUI_DispStringAt(str, 0,144);
}
else if((*msggui)==1011) {
sprintf(str, "Uart11: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
GUI_DispStringAt(str, 0,160);
}
else if((*msggui)==1048) {
sprintf(str, "Gui48: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
GUI_DispStringAt(str, 0,176);
}
else if((*msggui)==1056) {
sprintf(str, "Chk56: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
GUI_DispStringAt(str, 0,192);
}
else if((*msggui)==2000) {
sprintf(str, "CPU: %2d", OSCPUUsage);
GUI_DispStringAt(str, 0,224);
}
}
}
void TaskCheck(void *Id)
{
INT16U msggui;
while(1) {
OSTaskStkChk(2, &stk);
msggui=1002;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
OSTaskStkChk(10, &stk);
msggui=1010;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
OSTaskStkChk(11, &stk);
msggui=1011;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
OSTaskStkChk(48, &stk);
msggui=1048;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
OSTaskStkChk(56, &stk);
msggui=1056;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
msggui=2000;
OSQPost(Q_Gui, &msggui);
OSTimeDly(2);
OSTimeDlyHMSM(0,0,0,500);
}
}
/*
#include "..\Application\inc\config.h"
extern OS_EVENT * RXDSem;
#ifdef SEMIHOSTED
#define STACKSIZE (64+SEMIHOSTED_STACK_NEEDS)
#else
#define STACKSIZE 256
#endif
OS_STK Stack1[STACKSIZE]= {0, };
OS_STK Stack2[STACKSIZE]= {0, };
OS_STK Stack3[STACKSIZE]= {0, };
OS_STK Stack0[STACKSIZE]= {0, };
//OS_EVENT *Mbox1;
//OS_EVENT *Mbox2;
//OS_EVENT *Mbox3;
char PassMsg[] = "SW44B0";
void Task2(void *Id)
{
INT8U err;
for (;;)
{
//OSSemPend(RXDSem, 0, &err);
Uart_Printf(0,"this is TRIAGGER \r\n");
OSTimeDlyHMSM(0,0,2,0);
}
}
void Task1(void *Id)
{
Uart_Printf(0,"Task3() called\r\n");
GUI_SetFont(&GUI_Font8x16x2x2);
GUI_DispStringAt("this is a demo",0,0);
for(;;)
{
Uart_Printf(0,"Task3() called\r\n");
OSTimeDlyHMSM(0,0,1,0);
}
}
void Task0(void *Id)
{
Uart_Printf(0,"Task0() called\r\n");
Rtc_Tick_Init();
for(;;)
{
Uart_Printf(0,"HELLO THE WORLD!!\n");
OSTimeDlyHMSM(0,0,3,0);
}
}
int Main(void)
{
char Id0 = '0';
char Id1 = '1';
char Id2 = '2';
//char Id3 = '3';
Target_Init();
GUI_Init();
OSInit();
Uart_Printf(0,"\nuCOS-II Operation System Start!\n");
//GUI_SetFont(&GUI_Font8x16x2x2);
//GUI_DispStringAt("this is a demo",0,0);
//Mbox1 = OSMboxCreate(PassMsg);
//Mbox2 = OSMboxCreate((void *)0);
//Mbox3 = OSMboxCreate((void *)0);
//OSTaskCreate(Task3, (void *)&Id3, (OS_STK *)&Stack3[STACKSIZE - 1], 52);
OSTaskCreate(Task2, (void *)&Id2, (OS_STK *)&Stack2[STACKSIZE - 1], 11);
OSTaskCreate(Task1, (void *)&Id1, (OS_STK *)&Stack1[STACKSIZE - 1], 61);
OSTaskCreate(Task0, (void *)&Id0, (OS_STK *)&Stack0[STACKSIZE - 1], 5);
OSStart();
return 0;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -