📄 main2.c
字号:
/*
*************************************************************************************************************
* ----------------------
* 工业PDA的主调试程序
* ----------------------
* 文件名称 : main.C
*
* 文件说明 :
*
*
* 文件作者 :
*
* 作者单位 :北京合众思壮科技有限责任公司
*
* 创建日期 :
*
* 版本声明 : V1.0
* -----------------------------------------------------------------------------------------------------------
* 修改日期 :
*
* 修改作者 :
*
* 修改内容 :
*
* 版本声明 :
*
* 目前功能 :
* -----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
#include "..\Application\inc\config.h"
#define El_on rPDATE |= 0x1
#define El_off rPDATE &= (~0x1)
#define LCD_on_init rPDATE = rPDATE | ((1<<3))
#define LCD_off_init rPDATE = rPDATE & (~(1<<3))
// allocate memory for tasks' stacks
#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, };
//extern OS_EVENT *TouchSem;
//OS_EVENT *TouchSem;
//OS_EVENT *TouchSem1;
// mailbox event control blocks
//OS_EVENT *Mbox1;
//OS_EVENT *Mbox2;
//OS_EVENT *Mbox3;
char PassMsg[] = "SW44B0";
/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/
void Task2(void *Id)
{
INT8U err;
for (;;)
{
//OSSemPend(TouchSem, 0, &err);
GUI_TOUCH_Exec();
Uart_Printf(0,"this is TRIAGGER \r\n");
OSTimeDlyHMSM(0,0,0,50);
}
}
/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/
void Task3(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");
GUI_FillRect(20,60,70,70);
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);
}
}
/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/
void Task1(void *Id)
{
//char Id0 = '0'; //创建任务所必须
// INT8U i = 0;
//INT8U err;
Uart_Printf(0,"Task1() called\r\n");
for(;;)
{
GUI_TOUCH_tState State;
// OSSemPend(TouchSem1, 0, &err);
GUI_SetBkColor(GUI_GRAY0);
GUI_Clear();
GUI_SetColor(GUI_GRAY15);
GUI_FillRect(50, 50, 90, 90);
GUI_SetColor(GUI_GRAY15);
GUI_DispString("Please touch the green rectangle to continue...\n");
GUI_SetPenSize(10);
while(1)
{
// Get state of touch screen
GUI_TOUCH_GetState(&State);
if (State.Pressed)
{
if ((State.x >= 50) && (State.y >= 50) && (State.x <= 90) && (State.y <= 90))
{
// Break if position inside
break;
}
else
{
// Display position
GUI_SetColor(GUI_GRAY15);
GUI_DispStringAt("Position ", 0, GUI_GetDispPosY());
GUI_DispDec(State.x, 3);
GUI_DispString("/");
GUI_DispDec(State.y, 3);
GUI_DispString(" is not inside the rectangle");
GUI_SetColor(GUI_GRAY15);
GUI_DrawPoint(State.x, State.y);
}
}
//GUI_Delay(50);
}
GUI_SetColor(GUI_GRAY15);
GUI_DispString("\nOK");
OSTimeDlyHMSM(0,0,0,100);
}
}
/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/
int Main(void)
{
char Id0 = '0';
//char Id1 = '1';
//char Id2 = '2';
char Id3 = '3';
Target_Init();
GUI_Init();
Uart_Printf(0,"\nuCOS-II Operation System Start!\n");
OSInit();
Uart_Printf(0,"\nuCOS-II Operation System Start!\n");
Touch_Init();
//Touchen();
LCD_on_init;
//TouchSem1 = OSSemCreate(0);
//Mbox1 = OSMboxCreate(PassMsg);
//Mbox2 = OSMboxCreate((void *)0);
//Mbox3 = OSMboxCreate((void *)0);
//OSTaskCreate(Task1, (void *)&Id1, (OS_STK *)&Stack1[STACKSIZE - 1], 61);
//OSTaskCreate(Task2, (void *)&Id2, (OS_STK *)&Stack2[STACKSIZE - 1], 7);
OSTaskCreate(Task3, (void *)&Id3, (OS_STK *)&Stack3[STACKSIZE - 1], 52);
OSTaskCreate(Task0, (void *)&Id0, (OS_STK *)&Stack0[STACKSIZE - 1], 5);
OSStart();
return 0;
} // main
/*
void Main(void)
{
int i;
rSYSCFG = SYSCFG_8KB;
Target_Init();
LCD_off_init;
Delay1(5000);
El_off;
LCD_on_init;
Touch_Init();
//Touchen();
while(1)
{
//i=0;
//Uart_Printf(0,"\n\n\nSW3C44B0 测试程序V1.0 ( LCD for lm64p70 )\n\n");
//for(i=0;i<100;i++)
Delay(500000);
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -