📄 key.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 + -