?? main.c
字號(hào):
#include"..\ucos-ii\includes.h" /* uC/OS interface */#include "..\ucos-ii\add\osaddition.h"#include "..\inc\drv.h"#include <string.h>///******************任務(wù)定義***************///OS_STK Main_Stack[STACKSIZE*8]={0, }; //Main_Test_Task堆棧void Main_Task(void *Id); //Main_Test_Task#define Main_Task_Prio 12OS_STK Led_Flash_Stack[STACKSIZE]= {0, }; //LED閃爍任務(wù)堆棧void Led_Flash_Task(void *Id); //LED閃爍任務(wù)#define Led_Flash_Prio 60/**************已經(jīng)定義的OS任務(wù)*************#define Touch_Screen_Task_Prio 9#define Main_Task_Prio 12#define Key_Scan_Task_Prio 58#define Lcd_Fresh_prio 59#define Led_Flash_Prio 60***************************************////////////*****************事件定義*****************///OS_EVENT *Nand_Rw_Sem; //Nand_Flash讀寫控制權(quán)旗語(yǔ)//and you can use it as folloeing:// Nand_Rw_Sem=OSSemCreate(1); //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件//// OSSemPend(Nand_Rw_Sem,0,&err);// OSSemPost(Nand_Rw_Sem);OS_EVENT *Uart_Rw_Sem; //Uart讀寫控制權(quán)旗語(yǔ)//and you can use it as folloeing:// Uart_Rw_Sem=OSSemCreate(1); //創(chuàng)建Uart讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件//// OSSemPend(Uart_Rw_Sem,0,&err);// OSSemPost(Uart_Rw_Sem);//////////////////////////////////////////////////////////void Led_Flash_Task(void *Id)//指示RTOS處于正常工作中{ unsigned char led_state; Uart_Printf(0,"\n10"); for (;;) { Led_Display(led_state); led_state=~led_state; OSTimeDly(250); }}//Led_Flash_Taskvoid initOSGUI() //初始化操作系統(tǒng)的圖形界面{ initOSMessage(); initOSList(); initOSDC(); initOSCtrl(); initOSFile();}/////////////////////////////////////////////////////// Main function. //////////////////////////////////////////////////////int Main(int argc, char **argv){ ARMTargetInit(); // do target (uHAL based ARM system) initialisation // OSInit(); // needed by uC/OS-II // uHALr_ResetMMU(); LCD_Init(); //初始化LCD模塊 LCD_printf("LCD initialization is OK\n"); LCD_printf("320 x 240 Text Mode\n"); LoadFont(); LoadConfigSys(); // create the tasks in uC/OS and assign increasing // // priorities to them so that Task3 at the end of // // the pipeline has the highest priority. // LCD_printf("Create task on uCOS-II...\n"); OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);// 1 OSTaskCreate(Led_Flash_Task, (void *)0, (OS_STK *)&Led_Flash_Stack[STACKSIZE-1], Led_Flash_Prio );// 10 OSAddTask_Init(); LCD_printf("Starting uCOS-II...\n"); LCD_printf("Entering graph mode...\n"); LCD_ChangeMode(DspGraMode); initOSGUI(); InitRtc(); Nand_Rw_Sem=OSSemCreate(1); //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件// ARMTargetStart(); //Start the (uHAL based ARM system) system running // OSStart(); // start the game // // never reached // return 0;}//main//////////////////////////////////////////////////////////////////////////////////////////////////////////////////U16 showText[]={'P','r','e','s','s',' ','1',' ','K','e','y',0};void onKey(int nkey, int fnkey);void Main_Task(void *Id) //Main_Test_Task{ POSMSG pMsg=0; PDC pdc; ClearScreen(); pdc=CreateDC(); TextOut(pdc, 70,50, showText, TRUE, FONTSIZE_MIDDLE); DestoryDC(pdc); //消息循環(huán) for(;;){ pMsg=WaitMessage(0); //等待消息 switch(pMsg->Message){ case OSM_KEY: onKey(pMsg->WParam,pMsg->LParam); break; } DeleteMessage(pMsg);//刪除消息,釋放資源 }}void OnUsb_Download(){ U32 key; char bmpfile[]={'U','S','B','-','B',' ',' ',' ','B','M','P'}; PDC pdc; pdc=CreateDC(); ClearScreen(); ShowBmp(pdc,bmpfile, 100, 20); OSTimeDly(500); EnterUsbConnect();//進(jìn)入U(xiǎn)SB連接狀態(tài) for(;;){ key=GetNoTaskKey(); if(((key+1)&0xffff)==16){//按鍵16 ExitUsbConnect(); ClearScreen(); TextOut(pdc, 70,50, showText, TRUE, FONTSIZE_MIDDLE); DestoryDC(pdc); return; } } }void onKey(int nkey, int fnkey){ if(nkey==0)//按鍵1 OnUsb_Download();}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -