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

📄 switch_test.c

📁 dm270 source code
💻 C
字号:
/*
Module Name	: switch_test.c

Functions	: SWITCH_TEST
    
Purpose		: Test board switch

Author		: Otis	Yu		2005/03/31

Notes		: 
*/

/*--------------------------------------------------------------------------*
*	Local header files						 							    *
*--------------------------------------------------------------------------*/
#include <system/armsys270.h>
#include <csl/csl_emifhal_270.h>
#include <demo/uart270.h>
#include <demo/gio270.h>
#include <csl/armcsl_addr_270.h>
#include <csl\csl_giohal_270.h>
/*--------------------------------------------------------------------------*
*	Extern global variables					 							    *
*--------------------------------------------------------------------------*/
extern char UART_outBuff[1024];
extern volatile unsigned short	UART0IntFlag;
extern unsigned char Ctrl_FIFO1;

/*--------------------------------------------------------------------------*
*	Const, Macro, type definition					 					    *
*--------------------------------------------------------------------------*/
#define	KEY_MASK 		0x07FF

/* External Memory Interface Register Define */
#define	CS4CTRL1		0x30A12
#define	CS4CTRL2		0x30A14
#define	BUSRLS			0x30A18


/*--------------------------------------------------------------------------*
*	Global Variables 								  					    *
*--------------------------------------------------------------------------*/
static	unsigned short	*p;

/*--------------------------------------------------------------------------*
*	Local Functions declaration											    *
*--------------------------------------------------------------------------*/
unsigned short	API_KEY_IsValidKey( unsigned short key );
void	DEV_KEY_Init( void );
void	DEV_KEY_SetIRQ( void );

/*--------------------------------------------------------------------------*
*	Local Variables Declartaion											    *
*--------------------------------------------------------------------------*/
unsigned short	key;
/*---------------------------------------------------------*
*	Brief		:	DEV_KEY_Init
*	Return		:	
*	Description :						
*----------------------------------------------------------*/
void	DEV_KEY_Init( void )
{
	EMIF_FSET( CS4CTRL2, BUSW4, 1 );	//	ram bus work in 16-bits mode
	EMIF_FSET( BUSRLS, BUSSEL, 0 );		//	all ver. work in Normal mode
	EMIF_RSET( CS4CTRL1, 0x89FF );		//	CE & CYC width set 16 clock
		
}

/*---------------------------------------------------------*
*	Brief		:	DEV_KEY_ReadData
*	Return		:	keydata
*	Description :						
*----------------------------------------------------------*/
unsigned int	DEV_KEY_ReadData( void )
{
	static	unsigned short	keydata;
	
	asm( "	NOP" );
	keydata = *( volatile unsigned short* )0x09100000;
	keydata = (~keydata)&0x1FFF;	

	return	keydata;
}

/*--------------------------------------------------------------------------*
*	Brief		:	API KEY Scan Function 									*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
void	SWITCH_TEST( void )
{
	unsigned short i,j,k;
		
	UART_sendString( UART0, "\r\n ***************SWITCH TEST***************" );
	UART_sendString( UART0, "\r\n Please Press Any Key(Target Board) For Test:" );
	UART_sendString( UART0, "\r\n " );
	
	
	for(i=0 ; i<=8 ; i++){
	do
	{
		DEV_KEY_Init( );
		busc_ini( );
		for(j=0 ; j<0x1000 ; j++)
	    for(k=0 ; k<0x60 ; k++){}
		key = DEV_KEY_ReadData();
		key = key & KEY_MASK;
		p=&key;
		
	}
	while( key == 0x0000 );
	{
		if(key == 0x0100 || key == 0x0080)
		{
			i--;
		}
		else
		{		
			API_KEY_IsValidKey( key );
			UART_sendString( UART0, "\r\n " );
		}
	}
}
	UART_sendString( UART0, "\r\n Push Any Key(PC) Exit Test" );
 	while(UART0IntFlag);	
	UART0IntFlag = 1;
	
}

/*--------------------------------------------------------------------------*
*	Brief		:	Is Valid Key		 									*
*	Return		:	None													*
*	Description	:															*
*--------------------------------------------------------------------------*/
unsigned short	API_KEY_IsValidKey( unsigned short key )
{
	unsigned short	keycheck;
	
	keycheck = key & 0x07FF;			
	switch ( keycheck )	
	{
		
		case	0x0001:			sprintf(UART_outBuff, "\r\n You press Key is ENTER KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_0
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0002:			sprintf(UART_outBuff, "\r\n You press Key is LEFT KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_1
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0004:			sprintf(UART_outBuff, "\r\n You press Key is RIGHT KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_2
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0008:			sprintf(UART_outBuff, "\r\n You press Key is ESC KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_3
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0010:			sprintf(UART_outBuff, "\r\n You press Key is VOL_UP KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_4
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0020:			sprintf(UART_outBuff, "\r\n You press Key is VOL_DOWN KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_5
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0400:			sprintf(UART_outBuff, "\r\n You press Key is MENU KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_10
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x00c0:			sprintf(UART_outBuff, "\r\n You press Key is DOWN KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_13
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		case	0x0300:			sprintf(UART_outBuff, "\r\n You press Key is UP KEY = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );//KEY_14
								UART_sendString( UART0, "\r\n PASS" );
			return	0;
		default:
								sprintf(UART_outBuff, "\r\n KEY  ERROR = 0x%x",*p);
								UART_sendString( UART0,  UART_outBuff );
			return 1;
	}	
}

⌨️ 快捷键说明

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