/********************************************************************** * * 实验名称:KBI键盘中断实验 * 实验平台:NV32开发板 * 板载芯片:NV32F101FL64E * 实验效果:初始化KBI模块,选择中断输入引脚,和检测模式,按下按键触发KBI * 中断切换LED状态 * ************************************************************************/ #include "common.h" #include "ics.h" #include "rtc.h" #include "uart.h" #include "kbi.h" #include "sysinit.h" int main (void); void KBI0_Task(void); void KBI1_Task(void); /********************************************************************/ int main (void) { uint8_t u8Ch,i; ICS_ConfigType sICSConfig; KBI_ConfigType sKBIConfig; /*系统初始化*/ sysinit(); printf("\nRunning the KBI_demo project.\r\n"); LED1_Init(); LED2_Init(); PORT->IOFLT = 0xe4960000; //KBI0、KBI1输入滤波 printf("\nin FEE mode now.\r\n"); UART_WaitTxComplete(TERM_PORT); /* 时钟模式由FEE模式切换到FEI模式 */ sICSConfig.u32ClkFreq = 32; ICS_SwitchMode(FEE,FEI, &sICSConfig); OSC_Enable(); /* 禁用KBI中断输入引脚*/ for (i = 0; i < KBI_MAX_PINS_PER_PORT; i++) { sKBIConfig.sPin[i].bEn = 0; } sKBIConfig.sBits.bMode = 0; /*!< 选择 边沿检测 */ sKBIConfig.sPin[0].bEdge = KBI_FALLING_EDGE_LOW_LEVEL; /*!< 选择 下降沿或低电平检测 */ sKBIConfig.sBits.bIntEn = 1; //使能KBI中断 sKBIConfig.sPin[0].bEn = 1; //使能KBI中断输入引脚 KBI_Init(KBI0, &sKBIConfig); //初始化KBI0 KBI_Init(KBI1, &sKBIConfig); //初始化KBI1 KBI_SetCallback(KBI0, &KBI0_Task); //设置回调函数 KBI_SetCallback(KBI1, &KBI1_Task); while(1) { u8Ch = UART_GetChar(TERM_PORT); UART_PutChar(TERM_PORT, u8Ch); } } /*****************************************************************************//*! * * [url=home.php?mod=space&uid=247401]@brief[/url] KBI0回调函数 * * @param none. * * [url=home.php?mod=space&uid=266161]@return[/url] none * *****************************************************************************/ void KBI0_Task(void) { LED1_Toggle(); printf("KBI0 routinue.\r\n"); } /*****************************************************************************//*! * * @brief KBI1回调函数. * * @param none. * * @return none. * *****************************************************************************/ void KBI1_Task(void) { LED2_Toggle(); printf("KBI1 routinue.\r\n"); } /********************************************************************/
举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
71
308
1
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号