extint.c
来自「在AT91sam7SE上」· C语言 代码 · 共 81 行
C
81 行
//ExtInt.c
#include "Preprocess.h"
#include "ExtInt.h"
CALL_BACK g_pEiTaskHandler;
VOID EiIrqHandler ( VOID ){
EiClrIf();
if(EI_FREQ != (AT91F_PIO_GetInput(EI_BASE) & EI_FREQ)){
return;
}
if(NULL != g_pEiTaskHandler){
g_pEiTaskHandler();
}
}//VOID EiIrqHandler ( VOID ){
VOID EiInit(CALL_BACK pEiHandler){
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << EI_ID ) ;
g_pEiTaskHandler = pEiHandler;
AT91F_PIO_CfgInput(EI_BASE, EI_FREQ );
EI_BASE ->PIO_PPUER = EI_FREQ;
EI_BASE ->PIO_IFER = EI_FREQ;
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC,
EI_ID,
EI_INTERRUPT_LEVEL,
AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL,
EiIrqHandler
);
}//VOID EiInit(VOID){
VOID EiPlay(VOID){
EiClrIf();
AT91F_AIC_EnableIt (AT91C_BASE_AIC, EI_ID);
AT91F_PIO_InterruptEnable(EI_BASE, EI_FREQ);
}//VOID EiPlay(VOID){
VOID EiStop(VOID){
AT91F_AIC_DisableIt (AT91C_BASE_AIC, EI_ID);
AT91F_PIO_InterruptDisable(EI_BASE, EI_FREQ);
}//VOID EiStop(VOID){
VOID EiPause(VOID){
AT91F_AIC_DisableIt (AT91C_BASE_AIC, EI_ID);
}//VOID EiPause(VOID){
VOID EiContinue(VOID){
AT91F_AIC_EnableIt (AT91C_BASE_AIC, EI_ID);
}//VOID EiPause(VOID){
VOID EiClrIf(VOID){
UINT uiDummy;
uiDummy =EI_BASE->PIO_ISR;
uiDummy =uiDummy;
}//VOID EiClrIf(VOID){
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?