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

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

?? keyscan.c

?? FS2410開發板的一個底層應用程序
?? C
字號:
#include "def.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "mmu.h"
#include "uart.h"
#include "timer.h"

/******************************************************************************
	4X4 矩陣鍵盤
四個輸入引腳:	EINT0 -----( GPF0  )----INPUT
				EINT2 -----( GPF2  )----INPUT
				EINT11-----( GPG3  )----INPUT
				EINT19-----( GPG11 )----INPUT
				
四個輸出引腳:	KEYSCAN0---( GPE11 )----OUTPUT
				KEYSCAN1---( GPG6  )----OUTPUT
				KEYSCAN2---( GPE13 )----OUTPUT
				KEYSCAN3---( GPG2  )----OUTPUT
******************************************************************************/
U8 Key_Scan( void )
{
	Delay( 50 ) ;
	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2))) | (1<<6) | (0<<2) ;		//GPG6,2 output 0
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11))) | (1<<13) | (1<<11) ;		//GPE13,11 output 0
	if(      (rGPFDAT&(1<< 0)) == 0 )		return 16 ;
	else if( (rGPFDAT&(1<< 2)) == 0 )		return 15 ;
	else if( (rGPGDAT&(1<< 3)) == 0 )		return 14 ;
	else if( (rGPGDAT&(1<<11)) == 0 )		return 13 ;

	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2))) | (0<<6) | (1<<2) ;		//GPG6,2 output 0
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11))) | (1<<13) | (1<<11) ;		//GPE13,11 output 0
	if(      (rGPFDAT&(1<< 0)) == 0 )		return 11 ;
	else if( (rGPFDAT&(1<< 2)) == 0 )		return 8 ;
	else if( (rGPGDAT&(1<< 3)) == 0 )		return 5 ;
	else if( (rGPGDAT&(1<<11)) == 0 )		return 2 ;

	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2))) | (1<<6) | (1<<2) ;		//GPG6,2 output 0
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11))) | (1<<13) | (0<<11) ;		//GPE13,11 output 0
	if(      (rGPFDAT&(1<< 0)) == 0 )		return 10 ;
	else if( (rGPFDAT&(1<< 2)) == 0 )		return 7 ;
	else if( (rGPGDAT&(1<< 3)) == 0 )		return 4 ;
	else if( (rGPGDAT&(1<<11)) == 0 )		return 1 ;

	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2))) | (1<<6) | (1<<2) ;		//GPG6,2 output 0
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11))) | (0<<13) | (1<<11) ;		//GPE13,11 output 0
	if(      (rGPFDAT&(1<< 0)) == 0 )		return 12 ;
	else if( (rGPFDAT&(1<< 2)) == 0 )		return 9 ;
	else if( (rGPGDAT&(1<< 3)) == 0 )		return 6 ;
	else if( (rGPGDAT&(1<<11)) == 0 )		return 3 ;
	else return 0xff ;
}


static void __irq KeyISR(void)
{
	U8 key ;

	rGPGCON = rGPGCON & (~((3<<22)|(3<<6))) | ((0<<22)|(0<<6)) ;		//GPG11,3 set input
	rGPFCON = rGPFCON & (~((3<<4)|(3<<0))) | ((0<<4)|(0<<0)) ;		//GPF2,0 set input
	
	if(rINTPND==BIT_EINT8_23) 
	{
		ClearPending(BIT_EINT8_23);
		if(rEINTPEND&(1<<11)) 
		{
			//puts("Interrupt eint11 occur...");
			rEINTPEND |= 1<< 11;
		}
		
		if(rEINTPEND&(1<<19)) 
		{
			//puts("Interrupt eint19 occur...");		
			rEINTPEND |= 1<< 19;
		}
	}
	
	else if(rINTPND==BIT_EINT0)
	{
		//puts("Interrupt eint0 occur...");
		ClearPending(BIT_EINT0);
	}
	
	else if(rINTPND==BIT_EINT2) 
	{
		//puts("Interrupt eint2 occur...");
		ClearPending(BIT_EINT2);
	}

	//查詢按鍵鍵值
	key = Key_Scan() ;
	if( key != 0xff )
		printf( "Interrupt occur... K%d is pressed!\n", key ) ;

	//Beep( 2000, 3000 ) ;

	//重新初始化IO口
	rGPGCON = rGPGCON & (~((3<<12)|(3<<4))) | ((1<<12)|(1<<4)) ;		//GPG6,2 set output
	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2)));		//GPG6,2 output 0
	
	rGPECON = rGPECON & (~((3<<26)|(3<<22))) | ((1<<26)|(1<<22));		//GPE13,11 set output
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11)));		//GPE13,11 output 0
	
	rGPGCON = rGPGCON & (~((3<<22)|(3<<6))) | ((2<<22)|(2<<6)) ;		//GPG11,3 set EINT
	rGPFCON = rGPFCON & (~((3<<4)|(3<<0))) | ((2<<4)|(2<<0)) ;		//GPF2,0 set EINT
}

void KeyScanInit(void)
{
	rGPGCON = rGPGCON & (~((3<<12)|(3<<4))) | ((1<<12)|(1<<4)) ;		//GPG6,2 set output
	rGPGDAT = rGPGDAT & (~((1<<6)|(1<<2)));		//GPG6,2 output 0
	
	rGPECON = rGPECON & (~((3<<26)|(3<<22))) | ((1<<26)|(1<<22));		//GPE13,11 set output
	rGPEDAT = rGPEDAT & (~((1<<13)|(1<<11)));		//GPE13,11 output 0
	
	rGPGCON = rGPGCON & (~((3<<22)|(3<<6))) | ((2<<22)|(2<<6)) ;		//GPG11,3 set EINT
	rGPFCON = rGPFCON & (~((3<<4)|(3<<0))) | ((2<<4)|(2<<0)) ;		//GPF2,0 set EINT
	
	rEXTINT0 &= ~(7|(7<<8));	
	rEXTINT0 |= (2|(2<<8));	//set eint0,2 falling edge int
	rEXTINT1 &= ~(7<<12);
	rEXTINT1 |= (2<<12);	//set eint11 falling edge int
	rEXTINT2 &= ~(0xf<<12);
	rEXTINT2 |= (2<<12);	//set eint19 falling edge int

	rEINTPEND |= (1<<11)|(1<<19);		//clear eint 11,19
	rEINTMASK &= ~((1<<11)|(1<<19));	//enable eint11,19
	ClearPending(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);
	pISR_EINT0 = pISR_EINT2 = pISR_EINT8_23 = (U32)KeyISR;
	EnableIrq(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);	
}

void Key_Scan_Test( void )
{
	
	Uart_Printf( "\n8X2 KEY array TEST ( Interrupt MODE )\n" );
	Uart_Printf( "Press 'ESC' key to Exit this program !\n\n" );

	KeyScanInit() ;
    while( Uart_GetKey() != ESC_KEY ) ;
	rGPGCON = rGPGCON & (~((3<<22)|(3<<6))) | ((0<<22)|(0<<6)) ;		//GPG11,3 set input
	rGPFCON = rGPFCON & (~((3<<4)|(3<<0))) | ((0<<4)|(0<<0)) ;		//GPF2,0 set input
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产精品视频| 成人黄色av网站在线| 蜜臀99久久精品久久久久久软件| 极品销魂美女一区二区三区| 一本大道久久a久久精二百| 日韩欧美成人一区二区| 亚洲免费av高清| 韩国女主播一区| 91精品国产黑色紧身裤美女| 日韩一区在线看| 国产一区二区福利| 91精品国产全国免费观看| 国产精品传媒入口麻豆| 韩日av一区二区| 欧美精品亚洲二区| 一区二区三区资源| 丰满亚洲少妇av| 亚洲一区二区美女| 久久精品国产一区二区| 色综合久久88色综合天天| 久久久影视传媒| 九色综合狠狠综合久久| 欧美另类高清zo欧美| 午夜视频一区在线观看| 国产精品18久久久| 精品av综合导航| 麻豆国产欧美日韩综合精品二区| 7777精品伊人久久久大香线蕉的| 亚洲一区av在线| 精品视频一区三区九区| 一区二区三区免费看视频| 99久久精品国产一区| 国产精品入口麻豆九色| 国产精品一级黄| 国产欧美一区二区三区在线老狼| 精品伊人久久久久7777人| 日韩一区二区三区视频| 久久成人久久爱| 三级久久三级久久久| 热久久国产精品| 蜜桃一区二区三区在线| 久久久亚洲欧洲日产国码αv| 免费高清不卡av| 欧美大胆人体bbbb| 经典三级一区二区| 欧美国产一区二区在线观看| 大胆亚洲人体视频| 亚洲人123区| 欧美日高清视频| 美日韩一区二区| 久久久亚洲精品一区二区三区 | 偷拍与自拍一区| 91精选在线观看| 韩国精品久久久| 亚洲特黄一级片| 91精品国产综合久久香蕉的特点| 国内久久婷婷综合| 亚洲日本在线观看| 欧美日韩国产一二三| 午夜精品一区二区三区三上悠亚| 一区二区三区中文在线观看| 亚洲成人福利片| 国产毛片精品国产一区二区三区| 中文字幕 久热精品 视频在线| 成人性色生活片| 亚洲成人黄色影院| 欧美韩日一区二区三区| 色国产综合视频| 国产自产视频一区二区三区| 亚洲欧美电影院| 精品国产免费久久| 91麻豆swag| 韩日av一区二区| 亚洲国产美国国产综合一区二区| 亚洲精品在线电影| 欧美综合天天夜夜久久| 国产精品1区2区| 午夜精品一区二区三区免费视频| 国产欧美日韩精品在线| 欧美一区二区三区喷汁尤物| 狠狠色丁香久久婷婷综合_中| 国产激情偷乱视频一区二区三区| 精品国产免费人成在线观看| 色老综合老女人久久久| 国产精品白丝av| 六月丁香综合在线视频| 亚洲欧美日韩在线| 久久亚洲欧美国产精品乐播| 欧美中文字幕一区二区三区| av一本久道久久综合久久鬼色| 久久aⅴ国产欧美74aaa| 亚洲成人免费视频| 亚洲色图在线播放| 国产精品女主播av| 精品理论电影在线| 欧美一区二区在线观看| 欧美在线看片a免费观看| 成人免费视频caoporn| 久久精品二区亚洲w码| 亚洲高清久久久| 亚洲视频小说图片| 日本一区二区高清| 久久综合色综合88| 欧美精品一区二区蜜臀亚洲| 欧美一区日韩一区| 91精品国产综合久久婷婷香蕉| 欧美在线高清视频| 色妞www精品视频| 99re这里只有精品首页| 性久久久久久久久| 亚洲r级在线视频| 中文字幕日本不卡| 1区2区3区精品视频| 国产精品久久久久精k8| 中文字幕一区二区三区视频| 国产日本欧洲亚洲| 中文字幕成人av| 国产精品成人免费| 亚洲色图一区二区| 亚洲欧美一区二区三区国产精品| 亚洲人成网站影音先锋播放| 亚洲人精品一区| 亚洲综合一二区| 26uuu国产电影一区二区| 久久老女人爱爱| 国产精品国产精品国产专区不蜜 | 97久久人人超碰| 92国产精品观看| 欧美日本韩国一区| 日韩一区二区在线观看| 亚洲精品一区二区三区香蕉| 久久精品一级爱片| 亚洲欧美色综合| 丝瓜av网站精品一区二区 | 337p亚洲精品色噜噜噜| 欧美一卡二卡在线| 久久综合九色综合97婷婷| 日本一区二区视频在线| 亚洲特级片在线| 青青草精品视频| 国产大片一区二区| 色综合中文字幕| 日韩一级欧美一级| 日本一区二区高清| 亚洲成人av电影在线| 激情综合色综合久久综合| eeuss鲁一区二区三区| 欧美在线视频全部完| 欧美va亚洲va香蕉在线| 中文字幕在线观看一区| 天堂久久久久va久久久久| 黄色日韩网站视频| 91蜜桃免费观看视频| 日韩女优毛片在线| 亚洲欧美怡红院| 另类调教123区| 91视频在线观看免费| 精品国产区一区| 一区二区三区在线视频观看58 | 亚洲一区二区在线播放相泽 | 成人午夜视频在线| 欧美三级蜜桃2在线观看| 国产亚洲综合性久久久影院| 亚洲午夜久久久久久久久电影院 | 久久免费电影网| 亚洲国产精品久久久久秋霞影院| 国产精品一区二区在线播放| 在线免费观看成人短视频| 久久久777精品电影网影网| 亚洲卡通动漫在线| 韩国一区二区在线观看| 欧美性大战久久| 国产欧美精品在线观看| 免费人成黄页网站在线一区二区 | 欧美一级免费大片| 亚洲欧美aⅴ...| 国产不卡在线视频| 精品久久久久久久一区二区蜜臀| 亚洲最大成人综合| 91在线视频在线| 国产欧美精品一区二区色综合| 日本麻豆一区二区三区视频| 欧美午夜理伦三级在线观看| 国产日韩欧美高清在线| 精品一区二区三区免费毛片爱| 欧美中文字幕久久| 一区二区三区91| 色综合中文字幕国产 | 国产成人免费视| 91精品国产美女浴室洗澡无遮挡| 亚洲影院免费观看| 在线视频国内一区二区| 最新日韩在线视频| 91在线看国产| 中文字幕欧美一区| 91色综合久久久久婷婷| 亚洲欧洲综合另类在线| 91在线国产观看| 亚洲男人的天堂在线aⅴ视频| a级精品国产片在线观看|