⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_scan.c

📁 uccos2的的源码文件
💻 C
字号:
/****************************************Copyright (c)**************************************************

********************************************************************************************************/
#define  IN_KEYSCAN
#include "config.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
******************************************************************************/
uint8 Key_Scan( void )
{	
	uint8 cur_value;
	
	rGPGDAT = rGPGDAT & (~(1<<6));			//GPG6---output 0
	rGPEDAT = rGPEDAT | (1<<13) ;			//GPE13-- output 1
	
	if( (rGPGDAT&(1<< 2)) == 0 )			
		cur_value =19 ;		//--------------kscan2
	else if( (rGPGDAT&(1<< 3)) == 0 )		
		cur_value=17 ;		//--------------kscan3

	rGPGDAT = rGPGDAT | (1<<6);				//GPG6---output 1
	rGPEDAT = rGPEDAT & (~(1<<13)) ;		//GPE13-- output 0
	
	if( (rGPGDAT&(1<< 2)) == 0 )			
		cur_value= 20 ;		//--------------kscan2
	else if( (rGPGDAT&(1<< 3)) == 0 )		
		cur_value= 18 ;		//--------------kscan3

	switch(cur_value)  {
		case 19 :
			return 'U';		//加速
		case 17 :
			return 'D';		//减速
		case 20 :
			return 'Z';		//正转
		case 18 :
			return 'F';		//反转
	}
	
	return 'N';
}

void KeyScanInit(void)
{
	rGPGCON = rGPGCON & (~(0x0f<<4));					//GPG2,3--INPUT

	rGPGCON = rGPGCON & (~(0x03<<12)) | (0x01<<12);	//GPG6--output
	rGPGDAT= rGPGDAT & (1<<6);							//output 1
	
	rGPECON = rGPECON & (~(0x03<<26)) | (0x01<<26); 	//GPE13--output
	rGPEDAT = rGPEDAT & (1<<13);						//output 1
}

//----------------------------end---------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -