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

📄 key.c

📁 ucos在9200上的移植
💻 C
字号:

#include "AT91RM9200.h"

extern void AT91F_PIO_CfgInput(AT91PS_PIO pPio,unsigned int inputEnable);
extern void AT91F_PIO_CfgInputFilter(AT91PS_PIO pPio,unsigned int inputFilter);
extern void	AT91F_PIO_InterruptDisable(AT91PS_PIO pPio,unsigned int flag);
extern void	AT91F_PIO_CfgPullup(AT91PS_PIO pPio,unsigned int pullupEnable);
extern void	AT91F_PIO_CfgOutput(AT91PS_PIO pPio,unsigned int pioEnable);

/*configure PIO for keyboard*/
void Configure_Key()
{
	*AT91C_PMC_PCER  |= 1 << AT91C_ID_PIOB;					//enable PIOB clock	
	AT91F_PIO_InterruptDisable(AT91C_BASE_PIOB,0x01ff<<3);	//disable interrupt PB3-11
	AT91F_PIO_CfgPullup(AT91C_BASE_PIOB,0x01ff<<3);			//enable pullup resistor PB3-11
	AT91F_PIO_CfgInput(AT91C_BASE_PIOB,0x0f<<3);			//configure input PB3-6
	AT91F_PIO_CfgInputFilter(AT91C_BASE_PIOB,0x0f<<3);		//enable input filter PB3-6
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,0x1f<<7);			//configure output PB7-11
}

int key_matrix_scan(int para)
 {
 	int i;
 	for(i=0;i<5;i++)
 	{
 		AT91F_PIO_SetOutput(AT91C_BASE_PIOB,0x1f<<7);
 		AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,0x1<<(7+i));
 		
 		if(((AT91F_PIO_GetInput(AT91C_BASE_PIOB)>>3) & 0x0f ) == para)
 		break;	
 	}
 	return i;
 } 


⌨️ 快捷键说明

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