- UID
- 1029342
- 性别
- 男
|
//此处可依次添加判定代码。
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,PIN_COL_1|PIN_COL_2|PIN_COL_3); //全部置低电平
for(i=0;i<100;i++);
PA_ROW_Status = (unsignedchar)((AT91F_PIO_GetInput(AT91C_BASE_PIOA)>>25)&0x1F);
while(PA_ROW_Status!=0x1F) //等到按键抬起再退出中断
{
PA_ROW_Status = (unsignedchar)((AT91F_PIO_GetInput(AT91C_BASE_PIOA)>>25)&0x1F);
}
AT91F_AIC_AcknowledgeIt(AIC0);
//End of Interrupt
AT91F_AIC_ClearIt(AIC0,AT91C_ID_IRQ0); //Clear the Interrupt
AT91F_AIC_EnableIt(AIC0,AT91C_ID_IRQ0); //Enable ENDRX Interrupt
}
void IRQ_Init(void)
//config the AIC
{
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,AT91C_ID_IRQ0,6,
AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE,(void(*)())IRQ_Keyboard_Handler); //配置为边沿触发。
AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_IRQ0); //Enable IRQ Interrupt
}
void main(void)
{
PMC_Init();
//使能外设引脚
Config_Pio();
//引脚配置初始化
IRQ_Init();
While(1)
{
;
}
} |
|