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

📄 key.c

📁 uboot底层驱动
💻 C
字号:
#include "hardware_reg.h"
#include "Keyboard_drv.h"

int	keyMap[6] = {DOWN, ENTER, STOP, RESET, FUNC, UP};

void init_Key(void)
{
	*(unsigned long *)PORTE_DIR |= 0x3;
	*(unsigned long *)PORTE_DIR	&= ~0x1c;
	*(unsigned long *)PORTE_SEL |= 0x1F;
	
	*(unsigned long *)PORTE_DATA &= ~0x1c;
}

void keyReset(void)
{
	*(volatile unsigned long *)PORTE_DATA &= ~0x1c;
}

int key_Finder(void)
{
	unsigned char i,j;
	int keyLine, keyRow;
	keyLine = -1;
	keyRow = -1;
	for(i=0;i<readNum;i++)
	{
		if(readLine(i) == 1)
		{
			continue;
		}
		else
		{
			keyLine = i;
		}
	}
	
	if(keyLine >= 0)
	{
		for(i=0;i<sendNum;i++)
		{
			sendLine(i);
			for(j=0;j<1;j++);
			if(readLine(keyLine) == 0x1) continue;
			else
			{
				keyRow = i;
			}
		}
		keyReset();			
	}
	
	if((keyLine>=0) && (keyRow>=0))
	{
		return keyMap[sendNum * keyLine + keyRow];
	}
	else
	{
		return -1;
	}
}

⌨️ 快捷键说明

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