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

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

?? pmp_key_task_new.c

?? 嵌入式系統下的文件管理處理,和基本圖片jpg格式處理原代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*-------------------------------------------------*
* $RCSfile: pmp_key_task_new.c,v $
* $Date: 2007/01/28 07:53:06 $
* $Author: lanzhu $
* $Log: pmp_key_task_new.c,v $
* Revision 1.3  2007/01/28 07:53:06  lanzhu
* 添加了鎖鍵盤的機制,和UP/DOWN 匹配檢查機制
*
* Revision 1.2  2007/01/27 10:04:16  lanzhu
* 將低電壓檢測,添加進來
*
* Revision 1.1  2007/01/26 11:59:33  lanzhu
* 保存 01/26/2007 的工作
*
* Revision 1.2  2007/01/19 07:26:53  lanzhu
* 添加NES 游戲后, 對KEY DRIVER 的更新
*
* Revision 1.2  2007/01/18 11:17:36  lanzhu
* 使用于 NES GAME 運行的程序初步調試成功, 進行上傳備份
*
* Revision 1.1  2007/01/17 13:18:16  lanzhu
* first add
*
* Revision 1.2  2007/01/17 12:02:39  lanzhu
* no message
*
* Revision 1.1  2007/01/11 05:50:08  zhangyan
* modified key task for nes game.
*
* Revision 1.8  2007/01/05 02:30:11  lanzhu
* 修改 按鍵音的處理/ 修改背光的控制. 如果處于熄滅的狀態, 按鍵只是
* 點亮背光, 不發送消息
*
* Revision 1.7  2007/01/03 12:23:41  lanzhu
* no message
*
* Revision 1.6  2007/01/02 00:51:28  lanzhu
* 在用戶按下時,進行按鍵音的發聲
*
* Revision 1.5  2006/12/19 08:07:36  cuining
* 去掉warning
*
* Revision 1.4  2006/12/18 02:14:27  taiyun
* Modify include filename
*
* Revision 1.3  2006/12/12 00:36:09  lanzhu
* 去除 WARNING, 去掉不需要的程序
*
* Revision 1.2  2006/12/11 00:13:35  lanzhu
* 修改了 關機和自動關機的流程, 采用發送消息的方式,讓AP進行處理
*
* Revision 1.1.1.1  2006/12/05 03:01:16  lanzhu
* no message
*
* Revision 1.1.1.1  2006/12/01 09:49:35  lanzhu
* no message
*
* Revision 1.30  2006/11/28 12:50:02  lanzhu
* 增加了是否處理 手動關機的控制函數
*
* Revision 1.29  2006/11/28 11:50:25  lanzhu
* 修改了手動關機時的順序,等待按鍵松開后,在切斷電源
*
* Revision 1.28  2006/11/28 03:06:50  lanzhu
* 增加自動關機的處理
*
* Revision 1.27  2006/11/28 00:08:09  lanzhu
* 修改了 關機鍵的作用模式, 原來按下"關機"鍵后進行關機. 現在修改為
* 長按下后,才進行關機.
*
* Revision 1.26  2006/11/27 13:21:45  lanzhu
* 進行 耳機的檢測, 有耳機接入/拔出時,處理功放的控制
*
* Revision 1.25  2006/11/27 10:06:21  lanzhu
* 增加了 對背光的定時處理
*
* Revision 1.24  2006/11/24 05:11:52  cuining
* 加入對按鍵掃描始能的控制.
*
* Revision 1.23  2006/11/16 09:14:10  cuining
* 加入對產品板的支持
*
* Revision 1.22  2006/11/14 06:44:51  lanzhu
* 添加了喇叭功放的控制函數
*
* Revision 1.21  2006/11/13 03:28:31  cuining
* 調整3050EVB的按鍵
*
* Revision 1.20  2006/11/13 01:29:33  cuining
* 加入編輯開關,增加對SP3050EVB的支持
*
* Revision 1.19  2006/10/25 12:34:43  lanzhu
* 保存 25 日對KEY 的調整
*
* Revision 1.18  2006/10/16 02:00:15  lanzhu
* 添加 對 TELE WIDE 的處理。
*
* Revision 1.17  2006/10/14 10:05:26  cuining
* 加入對hold鍵的處理
*
* Revision 1.16  2006/10/14 07:23:19  lanzhu
* 增加 對關機鍵 的檢測, 增加對系統電源的控制
*
* Revision 1.15  2006/10/09 03:30:10  lanzhu
* 發現在 TAIBEI EVB 上編譯不成功, 原因沒有 KEY_WIDE 的定義
*
* Revision 1.14  2006/10/08 06:44:06  lanzhu
* 去掉一個打印信息
*
* Revision 1.13  2006/09/30 06:11:54  lanzhu
* 增加了 TAB 鍵
*
* Revision 1.12  2006/09/25 01:35:55  lanzhu
* 對 EVB-SN4047B 程序進行了調整
*
* Revision 1.11  2006/09/24 13:47:17  lanzhu
* 對 TAIBEI EVB 進行了 修改
*
* Revision 1.10  2006/09/24 12:36:35  lanzhu
* 重新測試了EVB的鍵值, 修改了一個BUG, 接入電源時,有鍵值發出
*
* Revision 1.9  2006/09/18 08:52:19  lanzhu
* 修改消息,按照5K 的狀態
*
* Revision 1.8  2006/09/18 07:58:43  lanzhu
* 修改 鍵值消息的定義 A->F1 B->F2 Reset->F3 Start->F4
*
* Revision 1.7  2006/09/18 03:28:54  lanzhu
* 增加 按鍵音 處理
*
* Revision 1.6  2006/09/13 08:02:05  lanzhu
* 增加對 SN EVB V1.0 的支持, 通過SPMP_define.h 中 EVB_SN_V10
* 的定義, 可以進行切換
*
* Revision 1.5  2006/09/05 11:57:54  lanzhu
* 使用電源供電時,會錯誤地收到按鍵消息
*
* Revision 1.4  2006/09/05 02:22:41  lanzhu
* 在主桌面不斷收到鍵盤消息, 檢查是driver 的bug, 修改了此bug
*
* Revision 1.3  2006/08/24 06:10:50  lanzhu反了的問題
* 修改了 left right 
*
* Revision 1.2  2006/08/23 11:29:01  lanzhu
* 增加了對 重復按鍵的支持
*
* Revision 1.1  2006/08/23 03:30:14  lanzhu
* 在556 大開發板 添加 key driver
*
*
*--------------------------------------------------*/

#define		SN_6047B
#define		SUPPORT_REPEAT
#include "SPMP_define.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>


#include "spca_general.h"
#include "sig_api.h"
#include "os_api.h"
#include "hw_disp.h"
#include "system_api.h"
#include "timer.h"

#include "appdriver.h"

#include "SysUtility.h"

#include "pmp_auto_poweroff.h"

#include "Host_typedef.h"
#include "Mcatch_cmd.h"

/**************************************************************************
 *                   G E N E R A L    C O N S T A N T S                   *
 **************************************************************************/

#define SPMP_POWER_ON	(1)
#define SPMP_POWER_OFF	(0)

#define LCM_GPIO_25			(25)

#define REPEAT_KEY_COUNT	(0xffff)

#define KEY_SCAN_PERIOD		(50)
//#define KEY_SCAN_PERIOD		(50)

#define SECOND_COUNT		(250/KEY_SCAN_PERIOD)

// 對關機按鍵時間的定義
#define ON_OFF_KEY_CNT		(20)
// 關機鍵松開后的計數值
#define RELEASE_COUNT		(8)



#define DUMMY_KEY			(0xffff)
#define KEY_DRV_QUE_SIZE	(4)


// 定義 NES 游戲中的 START 鍵
#define KEY_NES_START		(0x5577)


#ifndef EVB_SN_V10

/*  EVB TAIBEI key value */
enum{
	KEY_UP		=	3,	
	KEY_DOWN	=	6,
	KEY_LEFT	=	5,
	KEY_RIGHT	=	4,
	KEY_OK		=	15,
	KEY_ESC		=	8,
	KEY_RESET	=	11,
	KEY_START	=	9,
	KEY_MENU	=	7,	
	KEY_A       =	13,
	KEY_B		=	14,
	KEY_WIDE	=   55
};

#else
	#ifndef PMP3050_EVB_SN_V10

		#ifdef PMP3050_EVB_SN_PDT_V10
		// SN-6057B STD2.4 V10 開發板對應的鍵值
		enum{
				KEY_UP		=	0x07,	
				KEY_DOWN	=	0x09,
				KEY_LEFT	=	0x08,
				KEY_RIGHT	=	0x0a,

				KEY_OK		=	0x0b,
				KEY_ESC		=	0x06,
				
				KEY_RESET	=	0x0d,
				KEY_START	=	0x14,

				KEY_MENU	=	0x12,	
				KEY_A       =	0x0b,
				KEY_B		=	0x0a,


				KEY_TELE	=	0x05,
				KEY_WIDE	=	0x04,
				KEY_M       =   0x0c,
		};
		#else
		// SN-6047B 開發板對應的鍵值	lanzhu @[9/24/2006]
		enum{
				KEY_UP		=	0x0e,	
				KEY_DOWN	=	0x11,
				KEY_LEFT	=	0x10,
				KEY_RIGHT	=	0x0F,

				KEY_OK		=	0x09,
				KEY_ESC		=	0x13,
				KEY_RESET	=	0x0d,
				KEY_START	=	0x14,

				KEY_MENU	=	0x12,	
				KEY_A       =	0x0b,
				KEY_B		=	0x0a,


				KEY_TELE	=	0x05,
				KEY_WIDE	=	0x04,
				KEY_M       =   0x0c,
		};
		#endif
	#else
	// SN-SPCA3050 EVB V10 開發板對應的鍵值
	enum{
			KEY_UP		=	0x04,	
			KEY_RIGHT	=	0x05,
			KEY_LEFT	=	0x06,
			KEY_DOWN	=	0x07,

			KEY_OK		=	0x0a,
			KEY_ESC		=	0x09,
			KEY_TELE	=	0x08,
			KEY_START	=	0x00,

			KEY_MENU	=	0x00,	
			KEY_A          =	0x00,
			KEY_B		=	0x00,


			KEY_RESET	=	0x00,
			KEY_WIDE	=	0x0b,
			KEY_M         =     0x00,
	};
	#endif
/*

// EVB SN V10 key value 
enum{
		KEY_UP		=	0x0e,	
		KEY_DOWN	=	0x13,
		KEY_LEFT	=	0x12,
		KEY_RIGHT	=	0x11,
		KEY_OK		=	0x09,
		KEY_ESC		=	0x15,
		KEY_RESET	=	0x0d,
		KEY_START	=	00,			// 沒有此鍵
		KEY_MENU	=	0x0c,	
		KEY_A       =	0x0b,
		KEY_B		=	0x0a,
};
 */

#endif

/*
 *	需要發送給GUI時的鍵值
 */

enum{
	GUI_KEY_ESC		=	0,
	GUI_KEY_TAB		=	1,		
	GUI_KEY_MENU	=	2,	
	GUI_KEY_UP		=	3,
	GUI_KEY_LEFT	=	4,
	GUI_KEY_RIGHT	=	5,
	GUI_KEY_DOWN	=	6,
	GUI_KEY_F1		=	7,
	GUI_KEY_F2		=	8,
	GUI_KEY_OK		=	9,
	GUI_KEY_START	=	11,
	GUI_KEY_F4		=	12,
	GUI_KEY_F3		=	13,
};

/*
 *		Host GPIO register map table
 */
enum 
{
		// host interface enable 
		// 默認為: Host interface有效, 作為GPIO 使用時,應該設置為"0"
		REG_HOST_INTERFACE_ENABLE = 0x1000b320, // r/w

		// 驅動能力的設置
		REG_HGPIO_DRIVING_SET	= 0x10000184,	// R/W

		// pull select: 0 pull down  1 pull high		
		REG_HGPIO_PULL_SELECT	= 0x100001a8,	// R/W

		// pull enable: 0 disable  1 enable  
		REG_HGPIO_PULL_ENABLE	= 0x100001cc,	// R/W

		// input enable: 0 disable 1 enable 
		REG_HGPIO_INPUT_ENABLE	= 0x100001f0,	// R/W

		// output enable: 0 disable 1 enable 		
		REG_HGPIO_OUTPUT_ENABLE = 0x1000b064,	// R/W

		// output value
		REG_HGPIO_OUTPUT_VALUE  = 0x1000b068,	// R/W	

		// input value	
		REG_HGPIO_INPUT_VALUE	= 0x1000b06c,	// R

		//REG_HGPIO_SELECT		= 0x1000b0e2,
};

/*
 *		GPIO register map table 
 */
enum
{
		REG_GPIO_OUTPUT_VAL = 0x10001100,

		REG_GPIO_FINT_EN	= 0x10001130,
		REG_GPIO_RINT_EN	= 0x10001138,
		REG_GPIO_OUTPUT_EN	= 0x10001108,
		REG_GPIO_PULL_SEL	= 0x100001a4,
		REG_GPIO_PULL_EN	= 0x100001c8,
		REG_GPIO_INPUT_EN	= 0x100001ec,
		REG_GPIO_INPUT_VAL	= 0x10001110,
};

#ifdef PMP3050_EVB_SN_V10
/*
 *		Uart GPIO register map table 
 */
enum
{
		REG_UGPIO_15_8_DRV			= 0x10000189,	// driving select
		REG_UGPIO_15_8_PULL_SELECT	= 0x100001ad,	// R/W
		REG_UGPIO_15_8_PULL_ENABLE	= 0x100001d1,	// R/W
		
		REG_UGPIO_15_8_INPUT_ENABLE	= 0x100001f5,	// R/W
		REG_UGPIO_17_10_INPUT_VALUE	= 0x1000188E,	

		REG_UGPIO_17_10_OUTPUT_ENABLE = 0x1000188c,	// R/W
		REG_UGPIO_17_10_OUTPUT_VALUE  = 0x1000188a,	// R/W	

		/******************sellect pin be used as Uart or gpio************************/
		REG_UART2_UART_EN	= 0x10001845,	// R/W  UART2 Enable
		REG_UART2_UART_EN_BIT	= 4,	// R/W  UART2 Enable 
		REG_EN_UART	= 0x10001880,	// R/W  Enable UART
		REG_EN_UART2_BIT	= 2,	// R/W  Enable UART2 
};
#endif

/*
 *		LCM GPIO register map table
 */
enum
{
		REG_LCM_GPIO_DRV			= 0x10000170,	// driving select
		REG_LCM_GPIO_PULL_SELECT	= 0x10000194,	// pull select
		REG_LCM_GPIO_PULL_ENABLE	= 0x100001b8,	// pull enable 
		REG_LCM_GPIO_INPUT_ENABLE	= 0x100001dc,	// input enable 

		REG_LCM_GPIO_RINT_EVENT		= 0x1000a0c1,	// write 0 to clear
		REG_LCM_GPIO_FINT_EVENT		= 0x1000a0c4,	// write 0 to clear		
		REG_LCM_GPIO_INPUT_VALUE	= 0x1000a0c7,	// LCM input value

		REG_LCM_GPIO_OUTPUT_VALUE	= 0x1000a1af,	// LCM GPIO output value
		REG_LCM_GPIO_OUTPUT_ENABLE	= 0x1000a1b3,	// LCM GPIO output enable 
		REG_LCM_GPIO_OUTPUT_SELECT	= 0x1000a1b7,	// LCM GPIO output selection	
};



/*
 *			
 */
enum
{
		// 在3050 EVB 上定義喇叭的輸出
		IO_SPEAKER_MUTE		= 6,					// GPIO6

		// sunnorth EVB GPIO6 as power detect
		IO_POWER_DETECT		= 6,	// GPIO6

		// 熱鍵寄存器中 power off 占用 BIT0
		BIT_POWER_OFF		= 0,				
};

 /**************************************************************************
 *                             M A C R O S                                *
 **************************************************************************/

 /**************************************************************************
 *                         D A T A   T Y P E S                            *
 **************************************************************************/

/**************************************************************************
 *                        G L O B A L   D A T A                           *
 **************************************************************************/
void* keyDrvQ;

#define		GAME_STATUS_MASK		(1<<0)
#define		GAME_POWER_KEY_MASK		(1<<1)

// 用于判斷是否為游戲狀態的標志
static UINT16 gGameFlag  = 0x00;
// bit0		用于表示是否為游戲狀態
//			0	STATUS_PMP_PROG
//			1	STATUS_NES_GAME
// bit1		表示在游戲狀態下, POWER 是否被按下
//			0   表示沒有按下
//			1   表示按下	


// [01/28/2007] lanzhu add 用于判斷是否向GUI 發送消息的標志
#define		BIT_LIGHT_MASK		(1<<0)
#define		BIT_UPDOWN_MASK		(1<<1)	
static UINT16 gGUIMsgFlag = 0x01;
// bit0		--- 用于背光判斷   
//				0	是 背光響應		( 不進行GUI消息處理 )
//				1	不是背光響應	( 正常的GUI消息處理 )
// bit1		--- 用于 DOWN/UP 的匹配判斷
//				0	表示 UP 狀態	(只能對 DOWN 進行響應)
//				1   表示 DOWN 狀態  (只能對 UP 進行響應)

// 用于關機處理的標志
static UINT16 gPowerDown = 0x00;

// 是否掃描 POWER 鍵的標志
static UINT16 gScanPowerKey;

// 自動關機計數器的備份值
static UINT32 gBakAutoOffCount;
// 自動關機的當前值
static UINT32 gNowAutoOffCount;
static UINT16 gPowerOff;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机一区二区| 欧美自拍偷拍一区| 久久精品亚洲精品国产欧美| 久久久久久久久久看片| 亚洲免费观看高清完整版在线观看| 曰韩精品一区二区| 国产精品一区二区视频| 欧美三级乱人伦电影| 久久久国际精品| 人人精品人人爱| 色偷偷久久一区二区三区| 久久精品欧美一区二区三区不卡 | 国产精品久久久久影院老司| 亚洲电影视频在线| 91丨porny丨国产| 亚洲精品水蜜桃| 不卡一区在线观看| 国产欧美一区二区精品婷婷| 欧美日韩综合色| 日韩精品91亚洲二区在线观看| 欧美午夜精品久久久久久孕妇| 国产日韩欧美精品一区| 日韩av在线发布| 欧美日韩中文一区| 亚洲视频电影在线| 成人国产精品视频| 国产网站一区二区| 国产成人av一区二区三区在线观看| 欧美一区永久视频免费观看| 日韩毛片视频在线看| 盗摄精品av一区二区三区| 欧美不卡一区二区三区| 日韩精品一二区| 在线观看欧美精品| 亚洲一区二区三区四区五区中文| 91视频www| 亚洲精品免费看| 一本色道亚洲精品aⅴ| 中文字幕综合网| 国产精品午夜春色av| 97se亚洲国产综合自在线 | 色屁屁一区二区| 中文字幕乱码亚洲精品一区| 成熟亚洲日本毛茸茸凸凹| 欧美激情一区二区在线| 成人免费视频caoporn| 国产精品日日摸夜夜摸av| youjizz国产精品| 亚洲一区二区三区自拍| 国产精品网站导航| 99国产欧美另类久久久精品 | 欧美一区二区三区在线观看视频| 欧美国产1区2区| 蜜桃久久久久久久| 欧美日韩一本到| 亚洲欧洲精品成人久久奇米网| 欧美日韩视频在线第一区| 日韩欧美一二区| 国产精品网站在线| 免费观看一级特黄欧美大片| 97久久久精品综合88久久| 精品国产乱码久久久久久久| 日韩精品欧美成人高清一区二区| 成人国产亚洲欧美成人综合网 | 欧美r级在线观看| 国产亚洲1区2区3区| 久久99国产乱子伦精品免费| 88在线观看91蜜桃国自产| 亚洲自拍偷拍av| 在线观看亚洲一区| 一区二区三区成人| 91精品福利在线| 欧美一区二区三区在线电影| 欧洲精品一区二区三区在线观看| 热久久国产精品| 亚洲免费在线电影| 自拍偷拍国产亚洲| 91热门视频在线观看| 日韩二区在线观看| 国产精品丝袜在线| 亚洲国产sm捆绑调教视频| 国产精品一级二级三级| 国产亚洲精品bt天堂精选| 国产.精品.日韩.另类.中文.在线.播放| 久久综合视频网| 国产激情视频一区二区在线观看| 国产人妖乱国产精品人妖| 懂色av一区二区在线播放| 国产精品福利在线播放| 色婷婷精品大在线视频| 亚洲国产精品视频| 国产精选一区二区三区| 亚洲一区二区三区四区在线免费观看 | 亚洲1区2区3区4区| 欧美电影在线免费观看| 精品一区二区三区在线观看| www国产亚洲精品久久麻豆| 成人午夜av在线| 亚洲精品国产一区二区精华液| 欧美亚洲国产一区二区三区va | 日韩在线a电影| 欧美videos大乳护士334| 国产.欧美.日韩| 一区二区成人在线| 日韩欧美一二三区| 成人国产在线观看| 偷拍一区二区三区| 欧美国产一区二区在线观看| 91一区二区在线观看| 天堂va蜜桃一区二区三区漫画版 | 成人免费av资源| 一个色妞综合视频在线观看| 制服丝袜亚洲网站| caoporn国产一区二区| 天堂成人国产精品一区| 亚洲欧洲国产专区| 日韩视频在线你懂得| 成人黄色在线网站| 久久91精品久久久久久秒播| 亚洲免费观看高清完整版在线| 精品久久国产老人久久综合| 色综合久久久久综合| 国产在线播放一区| 亚洲成人久久影院| 国产精品久久久久久久久图文区 | 中文字幕av免费专区久久| 欧美日韩精品一区二区| 高潮精品一区videoshd| 欧美96一区二区免费视频| 亚洲免费色视频| 国产亚洲福利社区一区| 91精品国产入口| 欧美午夜精品理论片a级按摩| 成人午夜电影网站| 国产一区二区不卡老阿姨| 五月婷婷久久丁香| 亚洲欧洲综合另类在线| 精品免费国产一区二区三区四区| 欧美日韩一级片网站| 粉嫩aⅴ一区二区三区四区五区| 蜜臀av性久久久久蜜臀av麻豆| 亚洲黄色小视频| 亚洲视频免费在线观看| 日本一区二区高清| 久久日韩粉嫩一区二区三区 | 国产精品久久久久毛片软件| 欧美一区二区三级| 欧美三片在线视频观看| 欧洲一区在线电影| 色婷婷国产精品综合在线观看| 丁香六月综合激情| 国产.欧美.日韩| 丁香婷婷综合激情五月色| 国产专区综合网| 久久精品国产秦先生| 免费在线观看日韩欧美| 日本三级亚洲精品| 日韩中文字幕1| 日本不卡视频在线| 久久 天天综合| 国产精品18久久久久久久久| 国产一区不卡视频| 岛国精品一区二区| 91麻豆国产自产在线观看| 欧洲精品在线观看| 欧美精品乱码久久久久久按摩| 91麻豆精品国产91久久久更新时间 | 色哟哟精品一区| 中文字幕乱码久久午夜不卡| 欧美日韩精品久久久| 欧美精品久久99久久在免费线| 欧美三级日韩三级| 精品国产在天天线2019| 中文字幕欧美激情| 亚洲免费观看高清完整版在线| 亚洲成av人片| 国产乱理伦片在线观看夜一区| 成人午夜激情在线| 欧美私人免费视频| 日韩三级高清在线| 国产精品久久99| 日本怡春院一区二区| 久久99蜜桃精品| 一本一本大道香蕉久在线精品| 日韩一区二区三区在线视频| 国产女人aaa级久久久级| 亚洲精品国产精品乱码不99| 美日韩一区二区三区| 99久久久精品| 国产aⅴ精品一区二区三区色成熟| 日韩一区二区视频在线观看| 亚洲另类在线制服丝袜| 久久av资源站| 色美美综合视频| 欧美成人a在线| 亚洲高清视频在线| 粉嫩高潮美女一区二区三区 | 国产精品视频一二三| 亚洲成人第一页| 成人sese在线|