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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? CH375移植到S3C44B0
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************************
內(nèi)容:基于嵌入式USB主機的智能點菜系統(tǒng)的設計
作者:潘卓賢
日期: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;

/*********************************************************************************
該部分用于定義或者聲明任務有關變量或者信號
*********************************************************************************/
#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)  //客人請求信息接收任務,優(yōu)先級4
void TaskDataSave (void *pdata);    //數(shù)據(jù)保存到U盤的任務,優(yōu)先級6
void TaskSysSet(void *pdata);     //系統(tǒng)設置任務,優(yōu)先級8
void TaskDataView (void *pdata);    //客人請求記錄查看任務,優(yōu)先級10
void TaskKey (void *pdata);         //鍵盤任務,優(yōu)先級12
void TaskDisp (void *pdata);        //顯示任務,優(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ù),端口或外設的初始化放在系統(tǒng)啟動的第一個任務(即鍵盤任務)而不放在該部分。
***********************************************************************************/
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();                          //開始啟動任務
}

/**********************************************************************************
鍵盤任務,端口或外設的初始化放在系統(tǒng)啟動的第一個任務(即鍵盤任務)而不放在該部分。
***********************************************************************************/
void TaskKey(void *pdata)
{
    INT8U err;
    INT8U KeyNum,Cnt;
    INT8U MsgTemp[4];			//發(fā)送消息暫存
    INT8U Keyarr[4],clrs=0;		//按鍵發(fā)送的短信息,清屏標志
    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();           		//復位CH375芯片
    mDelaymS(100 );  			/* 延時50ms */	
    err=CH375LibInit();         		//初始化CH375程序庫和CH375芯片,操作成功返回0
    mStopIfError(err);
    CH375_PORT_INIT( );     		//打開USB硬件的中斷函數(shù) 
    OSStatInit();           		//初始化系統(tǒng)統(tǒng)計任務,在打開系統(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);                          //刪除時間顯示設置任務。
	    }
	    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);
    }
}

/**********************************************************************************
顯示任務,根據(jù)發(fā)送的消息隊列獲取命令,并解析命令,相應的顯示其他內(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;		//當前菜單;以及其位置,之前菜單位置。
    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("設置",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;	//藍色
	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)				//更新任務欄
	{
	    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("設置",40,226);LCD_PenColor=Black;
	    	    break;
	 	case 2:
	 	    LCD_WritePixel(0,0,320-1,240-16,BmpPt);
    		    LCD_TextOut("設置",40,226);LCD_PenColor=Purple;
   		    LCD_TextOut("資料",72,226);LCD_PenColor=Black;
	 	    break;
	    }
	    continue;
	}
	if(pt[0]==0xf0)				//串口接收更新消息的內(nèi)容
	{
	      if(MsgCnt<=15) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9191国产精品| av在线不卡免费看| 中文字幕日韩一区| 7878成人国产在线观看| 成人黄色综合网站| 青青草97国产精品免费观看 | 国模套图日韩精品一区二区| 自拍视频在线观看一区二区| 日韩一级高清毛片| 在线免费观看日本欧美| 国产91丝袜在线播放0| 日韩国产成人精品| 一区二区视频在线看| 久久久国产精品麻豆| 制服丝袜亚洲色图| 91激情五月电影| 国产不卡在线一区| 激情五月激情综合网| 五月天网站亚洲| 亚洲精品成人在线| 中文字幕乱码一区二区免费| 日韩精品一区二区三区swag| 精品婷婷伊人一区三区三| 99热在这里有精品免费| 国产91丝袜在线18| 国产一区二三区好的| 日本va欧美va瓶| 亚洲r级在线视频| 亚洲资源在线观看| 一区二区高清免费观看影视大全 | 久久综合色天天久久综合图片| 在线观看不卡一区| 色香蕉久久蜜桃| 波多野结衣一区二区三区| 北条麻妃一区二区三区| 亚洲网友自拍偷拍| 久久亚洲综合av| 久久综合久久99| 欧美精品一区二区久久久| 欧美成人高清电影在线| 精品免费99久久| 精品国产免费视频| 久久婷婷久久一区二区三区| 日韩你懂的在线播放| 日韩欧美一二三| 日韩精品一区二区三区中文精品| 日韩无一区二区| 精品久久国产字幕高潮| 精品欧美一区二区在线观看| 日韩欧美国产综合一区| 精品噜噜噜噜久久久久久久久试看| 欧美剧情片在线观看| 777午夜精品视频在线播放| 日韩一区二区精品葵司在线| 欧美一级艳片视频免费观看| 日韩一区二区三免费高清| 日韩欧美色综合| 精品国产一区二区三区不卡| 久久青草国产手机看片福利盒子| 2023国产精品自拍| 中文字幕一区二区在线观看| 亚洲综合在线第一页| 免费的国产精品| 国产suv精品一区二区883| 91丨porny丨国产| 欧美日韩视频在线一区二区| 日韩久久久久久| 国产精品伦理一区二区| 亚洲国产色一区| 精品一区二区三区久久| 9l国产精品久久久久麻豆| 欧美综合一区二区| 精品国产乱码久久久久久1区2区 | 麻豆传媒一区二区三区| 国产精品资源在线| 日本乱人伦aⅴ精品| 亚洲美女偷拍久久| 麻豆免费看一区二区三区| 国产成人综合网站| 在线观看欧美日本| www成人在线观看| 一区二区三区精品在线观看| 久草热8精品视频在线观看| heyzo一本久久综合| 在线播放国产精品二区一二区四区| 精品国产一区久久| 亚洲第一成人在线| 国产成人精品一区二区三区网站观看| 欧美性感一区二区三区| 日本一二三四高清不卡| 丝袜亚洲另类欧美| jlzzjlzz亚洲女人18| 精品国产一区a| 亚洲一区二区在线播放相泽| 国产一区二区免费看| 欧美日韩中文字幕一区二区| 国产视频一区二区三区在线观看| 亚洲一区二区在线播放相泽 | 国产专区欧美精品| 欧美在线观看你懂的| 国产视频亚洲色图| 美女视频黄 久久| 欧美日韩免费不卡视频一区二区三区| 久久精品免视看| 免费在线观看日韩欧美| 在线观看日韩电影| 国产成人免费视频| 在线不卡a资源高清| 亚洲色图欧美偷拍| 成人亚洲精品久久久久软件| 日韩精品综合一本久道在线视频| 亚洲一级二级在线| 91免费视频网| 国产精品欧美极品| 高清不卡在线观看| 久久综合成人精品亚洲另类欧美 | 国产精品一二三在| 精品国产人成亚洲区| 天堂久久久久va久久久久| 欧洲视频一区二区| 亚洲精品中文字幕乱码三区| 成人免费视频免费观看| xfplay精品久久| 国产一区二区三区免费在线观看| 欧美一区二区三区白人| 天堂久久一区二区三区| 欧美精品日韩一区| 视频一区在线视频| 欧美精品高清视频| 日韩1区2区3区| 欧美一卡二卡在线观看| 免费高清视频精品| 精品国产区一区| 国内精品国产成人| 国产欧美日韩综合精品一区二区| 国产精品自产自拍| 亚洲国产成人午夜在线一区| 国产成人av一区二区三区在线观看| wwwwxxxxx欧美| 国产999精品久久久久久| 国产午夜精品久久久久久久| 久久蜜桃av一区精品变态类天堂| 久久国产三级精品| 亚洲精品在线网站| 国产aⅴ精品一区二区三区色成熟| 国产欧美一区二区精品久导航| 福利电影一区二区| 国产精品毛片久久久久久久| www.欧美日韩| 亚洲精品国产一区二区精华液 | 91老师国产黑色丝袜在线| 亚洲欧美欧美一区二区三区| 在线视频一区二区免费| 午夜电影一区二区| 欧美成人三级在线| 国产精品影视天天线| 国产精品美女视频| 日本韩国一区二区三区| 日韩精品视频网站| 久久久久久久久久电影| www.av精品| 亚洲成人综合在线| www久久精品| 一本色道亚洲精品aⅴ| 日韩电影在线看| 国产欧美一区二区三区网站| 在线看日韩精品电影| 久久国产麻豆精品| 国产精品乱人伦中文| 欧美猛男超大videosgay| 久久精品av麻豆的观看方式| 国产精品一区二区久久不卡| 亚洲精品一二三四区| 91精品国产欧美一区二区成人| 国产麻豆一精品一av一免费| 亚洲区小说区图片区qvod| 欧美猛男gaygay网站| 国产寡妇亲子伦一区二区| 亚洲精品videosex极品| 日韩免费看网站| 色婷婷综合久久久久中文一区二区 | 成人开心网精品视频| 亚洲成a天堂v人片| 久久精品无码一区二区三区| 欧洲一区二区三区免费视频| 国产一区二区三区在线观看免费视频 | 欧美日韩精品免费观看视频| 国产一区二区0| 亚洲国产毛片aaaaa无费看| 精品成人一区二区| 欧美性三三影院| 国产宾馆实践打屁股91| 欧美精品自拍偷拍| 成人午夜短视频| 美美哒免费高清在线观看视频一区二区| 中文字幕欧美一| 26uuu欧美| 91精品国模一区二区三区| 91性感美女视频| 成人爽a毛片一区二区免费|