亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c.bak

?? CH375移植到S3C44B0
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************************
內(nèi)容:基于嵌入式USB主機(jī)的智能點(diǎn)菜系統(tǒng)的設(shè)計
作者:潘卓賢
日期:2007年6月8日
**********************************************************************************/
#include <string.h>
#include	"includes.h"               /* uC/OS interface */
#include "lcd.h"
#include "lcdlib.h"
#include "glib.h"
#include "Bmp_Color256_320_240.h"
#include "\CH375\CH375CFG.H"
#include "\CH375\CH375HF9.H"
#include "RTC\RTC TIME.H"

extern int Image$$RO$$Limit;
extern int Image$$RW$$Base;

/*********************************************************************************
該部分用于定義或者聲明任務(wù)有關(guān)變量或者信號
*********************************************************************************/
#define	STACKSIZE	300
unsigned int StackKey[STACKSIZE];
unsigned int StackDisp[STACKSIZE];
unsigned int StackView[STACKSIZE];
unsigned int StackSysSet[STACKSIZE];
unsigned int StackDataSave[STACKSIZE];

//void TaskMsgAccept(void *pdata)  //客人請求信息接收任務(wù),優(yōu)先級4
void TaskDataSave (void *pdata);    //數(shù)據(jù)保存到U盤的任務(wù),優(yōu)先級6
void TaskSysSet(void *pdata);     //系統(tǒng)設(shè)置任務(wù),優(yōu)先級8
void TaskDataView (void *pdata);    //客人請求記錄查看任務(wù),優(yōu)先級10
void TaskKey (void *pdata);         //鍵盤任務(wù),優(yōu)先級12
void TaskDisp (void *pdata);        //顯示任務(wù),優(yōu)先級14

INT8U DispLay=0;                     //顯示處在某一界面層的選擇
OS_EVENT *Sem;                     //定義互斥信號
OS_EVENT *MyMbox;                   //定義信號郵箱
OS_EVENT *ReMsgQeue;               //定義消息隊列
void *MsgQeueTb[20];              //定義消息隊列指針數(shù)組

/**********************************************************************************
串口中斷接收函數(shù),接收客人發(fā)送的信息。
***********************************************************************************/
U8 MsgBuf[50][25],GetCnt=0,MsgCnt=0;
OS_EVENT     *LCDFlsh;
OS_EVENT     *KeyScrlFlh;
INT8U Temp=0xf0;
void __irq Uart0Int(void)
{   
    OSIntEnter();
    rI_ISPC|=BIT_URXD0;
    if(rUTRSTAT0 & 0x1)
    {
    	MsgBuf[MsgCnt][GetCnt]=RdURXH0();
    	if(MsgBuf[MsgCnt][GetCnt]==10||GetCnt>23)
    	{    
    	    MsgBuf[MsgCnt][GetCnt]='\0';
    	    GetCnt=0;
    	    OSMboxPost(MyMbox,(void*)MsgBuf[MsgCnt]);	//用于數(shù)據(jù)保存
    	    MsgCnt++;
    	    if(MsgCnt==50)
    	    	MsgCnt=0;
    	    OSQPost(ReMsgQeue,&Temp);		//用于刷新顯示
    	}
    	else	
    	    GetCnt++;
    }
    OSIntExit();		
}
/**********************************************************************************
主函數(shù),端口或外設(shè)的初始化放在系統(tǒng)啟動的第一個任務(wù)(即鍵盤任務(wù))而不放在該部分。
***********************************************************************************/
void Main(void)
{
    rSYSCFG = CACHECFG;                 //8K字節(jié)cache,寫緩沖使能,data abort使能      
    rNCACHBE0 = ((Non_Cache_End>>12)<<16)|(Non_Cache_Start>>12);
   					//在上面的數(shù)據(jù)區(qū)域不使用高速緩存
    ChangePllValue( 24, 3, 1 );		//晶振10MHz,修改系統(tǒng)主頻為3.2倍頻(32MHz)   
    OSInit();
    OSTaskCreate(TaskKey, (void *)0, (void *)&StackKey[STACKSIZE - 1], 12);
    OSStart();                          //開始啟動任務(wù)
}

/**********************************************************************************
鍵盤任務(wù),端口或外設(shè)的初始化放在系統(tǒng)啟動的第一個任務(wù)(即鍵盤任務(wù))而不放在該部分。
***********************************************************************************/
void TaskKey(void *pdata)
{
    INT8U err;
    INT8U KeyNum,Cnt;
    INT8U MsgTemp[4];			//發(fā)送消息暫存
    INT8U Keyarr[4],clrs=0;		//按鍵發(fā)送的短信息,清屏標(biāo)志
    INT8U Where=0,NowMenu=0,ItemBackup=0;
    InitInterrupts();           	//初始化系統(tǒng)核心節(jié)拍 
    Port_Init();                	//初始化各端口
    Uart_Init(0,9600);         	 	//初始化串口
    Delay(500);                 	//延時
    Uart_Select(0);         		//選擇串口0
    Lcd_DispON();	    		//開啟LCD顯示,包含初時化LCD
    RtcInit(SysTime);       		//初始化系統(tǒng)時間日期
    InstallSystemTimer();   		//安裝并開啟UCOS的時鐘節(jié)拍
    CH375Reset();           		//復(fù)位CH375芯片
    mDelaymS(100 );  			/* 延時50ms */	
    err=CH375LibInit();         		//初始化CH375程序庫和CH375芯片,操作成功返回0
    mStopIfError(err);
    CH375_PORT_INIT( );     		//打開USB硬件的中斷函數(shù) 
    OSStatInit();           		//初始化系統(tǒng)統(tǒng)計任務(wù),在打開系統(tǒng)節(jié)拍之前
    rINTMSK&=(~(BIT_URXD0));		//以下兩句用于打開串口中斷函數(shù)
    pISR_URXD0=(unsigned)Uart0Int;	
//以下用于創(chuàng)建信號量
    Sem=OSMutexCreate(4,&err);		//創(chuàng)建互斥信號,優(yōu)先級繼承值為4
    MyMbox=OSMboxCreate((void*)0);	//創(chuàng)建消息郵箱
    ReMsgQeue=OSQCreate(&MsgQeueTb[0],20); //最大可以存放20條消息
    OSTaskCreate(TaskDisp, (void *)0, (void *)&StackDisp[STACKSIZE - 1], 14);
    OSTaskCreate(TaskDataSave, (void *)0, (void *)&StackDataSave[STACKSIZE - 1],6);
    while(1)
    {
    	OSTimeDly(50);
    	MsgTemp[0]=0xe1;
    	OSQPost(ReMsgQeue,(void*)MsgTemp);//定期刷新狀態(tài)欄目
    	KeyNum=0;
	if(Key1)
	{	
	    while(Key1) OSTimeDly(40);
	    KeyNum=1;
	}
	if(Key2)
	{	
	    while(Key2) OSTimeDly(40);
	    KeyNum=2;
	}
	if(Key3)
	{	
	    while(Key3) OSTimeDly(40);
	    KeyNum=3;
	}
	if(Key4)
	{	
	    while(Key4) OSTimeDly(40);
	    KeyNum=4;
	}
	if(!KeyNum)
	    continue;
	if(KeyNum==1)
	{
	    DispLay++;
	    if(DispLay==3)
	    	DispLay=0;
	    if(DispLay==2)
	    {	OSTaskDel(8);                          //刪除時間顯示設(shè)置任務(wù)。
	    }
	    MsgTemp[0]=0xe2;MsgTemp[1]=DispLay;
	    OSQPost(ReMsgQeue,(void*)MsgTemp);	      	//定期刷新狀態(tài)欄目
	}
	switch(DispLay)
	{
	    case 0:
	    	switch(KeyNum)
	    	{
	    	    case 1:
	    	    	Keyarr[0]=0xf1;
	    	    	//Where=0;
	    	    	//ItemBackup=0;
	    	    	//NowMenu=0;    
	    	    	break;
	    	    case 2:				//向上鍵
			if(Where)
			{
			    ItemBackup=NowMenu;
			    Where--;
			    NowMenu--;
			    Keyarr[0]=0xf2;		//局部更新
			}
			else
			{
			    if(NowMenu)
			    {
			    	NowMenu--;
			    	Keyarr[0]=0xf1;		//全部更新
			    }
			    else
			    {
			    	Keyarr[0]=0;		//不操作
			    }
			}
	    	    	break;
	    	    case 3:
			if(Where<14)
			{
			    ItemBackup=NowMenu;
			    if(NowMenu==MsgCnt-1||MsgCnt==0)
			    	break;
			    Where++;
			    NowMenu++;
			    Keyarr[0]=0xf2;		//局部更新
			}
			else
			{
			    if(NowMenu<MsgCnt-1)
			    {
			    	NowMenu++;
			    	Keyarr[0]=0xf1;		//全部更新
			    }
			    else
			    {
			    	Keyarr[0]=0;		//不操作
			    }
			}
	    	    	break;
	    	    case 4:	    	    	
	    	    	Keyarr[0]=0xf1;
	    	    	Where=0;
	    	    	ItemBackup=0;
	    	    	NowMenu=0;    	    
	    	    	break;
	   	}
	   	Keyarr[1]=NowMenu;
	    	Keyarr[2]=ItemBackup;
	    	Keyarr[3]=Where;
	    	break;
	    case 1:
	    	switch(KeyNum)
	    	{
	    	    case 1:
	    	    	Keyarr[0]=0xA0;
	    	    	Cnt=0;
	    	    	OSTaskCreate(TaskSysSet, (void *)0, (void *)&StackSysSet[STACKSIZE - 1], 8);
	    	    	break;
	    	    case 2:
	    	    	Cnt--;
	    	    	if(Cnt==255)
	    	    	    Cnt=2;
	    	    	Keyarr[0]=0xA1;
	    	    	break;
	    	    case 3:
	    	    	Cnt++;
	    	    	if(Cnt==3)
	    	    	    Cnt=0;
	    	    	Keyarr[0]=0xA1;
	    	    	break;
	    	    case 4:
	    	    	Keyarr[0]=0xA2;
	    	    	break;
	    	}
	    	Keyarr[2]=Cnt;
	    	break;
	    case 2:
	    	switch(KeyNum)
	    	{
	    	    case 1:
	    	    	OSTaskCreate(TaskDataView, (void *)0, (void *)&StackView[STACKSIZE - 1],10);
	    	        break;
		    case 2:
		        break;
		    case 3:
		        break;
		    case 4:
		        break;	    	   
	    	}
	    	Keyarr[0]=0;
	    	break;
        }
        OSQPost(ReMsgQeue,(void*)Keyarr);
    }
}

/**********************************************************************************
顯示任務(wù),根據(jù)發(fā)送的消息隊列獲取命令,并解析命令,相應(yīng)的顯示其他內(nèi)容
***********************************************************************************/
#define Blue 0xfc
#define Black 0x00
#define Red 0x1f
#define White 0xff
#define Green 57
#define Yellow 63
#define Purple 135
#define Orange 41
#define MaxBar 15 				//顯示條項的最大數(shù)目
void TaskDisp (void *pdata)
{
    INT8U err,*pt,i,Cnt,*ErrPt,*BmpPt;
    INT8U NowMenu,Where,ItemBackup;		//當(dāng)前菜單;以及其位置,之前菜單位置。
    LCD_BGColor =Blue;
    LCD_PenColor =Purple;
    Lcd256_Clear(Yellow);
    BmpPt =acFROG;		 		 //背景圖片選取
    LCD_WritePixel(0,0,320-1,240-16,BmpPt);	//在LCD上面顯畫面
    LCD_TextOut("消息",8,226);LCD_PenColor =Black;
    LCD_TextOut("設(shè)置",40,226);
    LCD_TextOut("資料",72,226);
    while(1)
    {
    	RtcGetTime(SysTime);
	LCD_PrinSet(178,226);LCD_BGColor =Green;
	LCD_Printf("CPU使用%2d%%",(U16)OSCPUUsage);
	LCD_BGColor =Yellow;
	if(CH375DiskStatus==DISK_CONNECT)
	    LCD_TextOut("(U)",154,226);
	else
	    LCD_TextOut("   ",154,226);
	LCD_PrinSet(253,226);LCD_BGColor =Blue;	//藍(lán)色
	LCD_Printf("%02d:%02d:%02d",SysTime->hour,SysTime->min,SysTime->sec);
	pt=(INT8U *)OSQPend(ReMsgQeue,0,&err);
		
	if(pt[0]==0xe1)				//清屏
	    continue;			        //刷新狀態(tài)欄
	if(pt[0]==0xe0)				//清屏
	{
	    LCD_WritePixel(0,0,320-1,240-16,BmpPt);
	    					//在LCD上面顯畫面 刷新
	}
	if(pt[0]==0xe2)				//更新任務(wù)欄
	{
	    switch(pt[1])
	    {
	    	case 0:
	    	    LCD_PenColor=Purple;
	    	    LCD_TextOut("消息",8,226);LCD_PenColor=Black;	
   		    LCD_TextOut("資料",72,226);
	    	    break;
	    	case 1:
	    	    LCD_TextOut("消息",8,226);LCD_PenColor=Purple;	
    		    LCD_TextOut("設(shè)置",40,226);LCD_PenColor=Black;
	    	    break;
	 	case 2:
	 	    LCD_WritePixel(0,0,320-1,240-16,BmpPt);
    		    LCD_TextOut("設(shè)置",40,226);LCD_PenColor=Purple;
   		    LCD_TextOut("資料",72,226);LCD_PenColor=Black;
	 	    break;
	    }
	    continue;
	}
	if(pt[0]==0xf0)				//串口接收更新消息的內(nèi)容
	{
	      if(MsgCnt<=15) 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产| 久久久久久久久一| 久久精品视频免费| 亚洲国产精品一区二区尤物区| 美女网站色91| 欧美亚日韩国产aⅴ精品中极品| 日韩一区二区在线播放| 亚洲精品成人天堂一二三| 韩国午夜理伦三级不卡影院| 欧洲国产伦久久久久久久| 久久久三级国产网站| 日韩二区三区在线观看| 色婷婷亚洲精品| 国产精品免费av| 国产精品亚洲一区二区三区在线 | 中文字幕一区二区三区蜜月| 裸体歌舞表演一区二区| 777奇米成人网| 亚洲电影在线播放| 欧美性大战久久久久久久| 中文字幕乱码亚洲精品一区| 黄色精品一二区| 欧美一区二区性放荡片| 日日欢夜夜爽一区| 正在播放一区二区| 丝袜亚洲另类欧美| 91麻豆精品国产| 人禽交欧美网站| 91精品国产91久久久久久一区二区| 一区二区三区不卡在线观看| 成人黄色国产精品网站大全在线免费观看| 日韩精品最新网址| 久久国内精品自在自线400部| 91精品婷婷国产综合久久竹菊| 天天做天天摸天天爽国产一区| 欧美日韩国产色站一区二区三区| 亚洲福利一二三区| 欧美色成人综合| 日韩av在线免费观看不卡| 欧美高清精品3d| 日本不卡视频一二三区| 精品av久久707| 成人一道本在线| 一区二区三区四区激情| 欧美丝袜第三区| 美女视频一区在线观看| 精品国产麻豆免费人成网站| 国产盗摄女厕一区二区三区| 亚洲综合久久av| 欧美肥妇bbw| 九色综合狠狠综合久久| 中文字幕欧美区| 91日韩在线专区| 麻豆精品视频在线观看免费| 久久色成人在线| 不卡一区在线观看| 日韩精品五月天| 国产日韩欧美激情| 日本高清免费不卡视频| 日韩av成人高清| 中文字幕国产一区| 欧美私人免费视频| 国产麻豆精品在线观看| 最新成人av在线| 日韩一级完整毛片| 成熟亚洲日本毛茸茸凸凹| 亚洲一区中文日韩| 精品日韩99亚洲| 色久综合一二码| 国产一区 二区 三区一级| 亚洲一区二区三区四区在线观看| 日韩一区二区在线免费观看| 99精品一区二区| 麻豆一区二区在线| 亚洲精选一二三| 精品国产亚洲在线| 在线观看免费一区| 国产精品系列在线播放| 亚洲精品乱码久久久久久久久| 777亚洲妇女| 色综合久久久久综合体桃花网| 奇米影视7777精品一区二区| 亚洲欧洲日产国码二区| 欧美不卡123| 欧美精品一卡二卡| 99re8在线精品视频免费播放| 激情久久久久久久久久久久久久久久| 日韩一区在线播放| 久久久久久亚洲综合影院红桃| 26uuu精品一区二区| 欧美中文字幕一区二区三区| 国产91精品精华液一区二区三区| 午夜电影一区二区三区| 悠悠色在线精品| 国产欧美日韩激情| 精品福利视频一区二区三区| 91麻豆精品国产91久久久| 在线日韩国产精品| 91在线国产观看| 成人一区二区视频| 大陆成人av片| 国产一区三区三区| 久久精品国产久精国产| 日韩专区在线视频| 五月激情综合网| 天天影视网天天综合色在线播放| 亚洲免费观看视频| 一区二区三区美女| 一区二区三区日韩在线观看| 国产精品久久久久久久久快鸭 | 亚洲最新视频在线观看| 国产精品污www在线观看| 久久久精品欧美丰满| 精品国产污网站| 精品三级在线看| 日韩你懂的电影在线观看| 日韩欧美一级片| 精品国产一区二区三区av性色 | 狠狠狠色丁香婷婷综合激情| 奇米色777欧美一区二区| 亚洲午夜电影在线观看| 五月天视频一区| 青娱乐精品视频| 精品一区二区三区香蕉蜜桃| 国内一区二区视频| 成人综合婷婷国产精品久久蜜臀| 国产成人在线视频免费播放| 成人开心网精品视频| 白白色 亚洲乱淫| 色又黄又爽网站www久久| 欧美色爱综合网| 日韩欧美视频一区| 国产女人aaa级久久久级 | 99久久精品久久久久久清纯| 成人性色生活片免费看爆迷你毛片| 丁香桃色午夜亚洲一区二区三区| av一区二区三区黑人| 91高清在线观看| 欧美成人a∨高清免费观看| 久久色.com| 亚洲一区免费在线观看| 奇米精品一区二区三区在线观看| 国产精品一区二区免费不卡| 波多野结衣亚洲| 欧美群妇大交群的观看方式| 精品国产乱码久久久久久浪潮| 欧美激情在线一区二区| 图片区小说区区亚洲影院| 国产一区91精品张津瑜| 在线中文字幕一区| 欧美大片拔萝卜| 一区二区三区波多野结衣在线观看| 亚洲成人三级小说| 国产成人午夜精品5599| 在线精品视频免费观看| 久久色在线观看| 亚洲成人你懂的| 成人免费视频caoporn| 欧美日韩国产高清一区二区| 欧美极品另类videosde| 亚洲国产精品久久久久秋霞影院| 国产一区二区免费在线| 欧美色窝79yyyycom| 国产精品无人区| 日本v片在线高清不卡在线观看| 成人黄色网址在线观看| 欧美va亚洲va| 视频一区在线视频| 99精品欧美一区二区三区小说 | 欧美怡红院视频| 久久久久久久久免费| 亚洲成av人片一区二区三区| 成人午夜视频福利| 久久在线免费观看| 午夜精品福利在线| 欧美婷婷六月丁香综合色| 国产精品欧美精品| 国产成人av一区二区三区在线| 91精品国产综合久久精品性色| 亚洲欧洲精品一区二区三区不卡| 久久成人久久爱| 91精品国产综合久久久蜜臀粉嫩 | 91福利在线导航| 中文字幕制服丝袜一区二区三区| 国产一区二区伦理| 4438x亚洲最大成人网| 亚洲国产成人精品视频| 91免费看`日韩一区二区| 亚洲国产成人午夜在线一区| 韩国成人在线视频| 久久亚洲精精品中文字幕早川悠里 | 天堂影院一区二区| 欧美三级日韩在线| 一区二区三区中文字幕在线观看| 9久草视频在线视频精品| 国产精品婷婷午夜在线观看| 国产精品一二二区| 欧美极品美女视频| 不卡在线观看av| 亚洲精品高清在线|