PIC16LF1825 IOC 外部电平变化中断问题咨询

2020-02-06 10:30发布

程序代码就两个函数
void bsp_InitIoc(void)
{
  GIE   = 1;
  PEIE  = 1;
  INTE  = 1;
  IOCIE = 1;
  IOCAP=0b00000000;        //禁止A端口上升沿触发
  IOCAN=0b00111111;        //允许RA5~RA0下降沿触发
}
void interrupt ISR(void){
   if(IOCIE&&IOCAF5)
        {
         PORTA = PORTA;
         IOCAF5 = 0;
        }        
   if(IOCIE&&IOCAF4)
        {
         PORTA = PORTA;
         IOCAF4 = 0;
        }

}
现象是外部电平中断只有RA5有效果,其他RA4~RA0都没效果。,没找出原因,可能的原因是什么?求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
caoxuedong
1楼-- · 2020-02-06 15:11
RA0,RA1,RA2,RA4,需要注意你的ANSELA寄存器的初始化工作,这四个口复位后初始状态是模拟量端口,不是数字IO; RA3要注意你的配置字1,配置字1决定你的RA3引脚是外部复位还是普通数字输入接口。

一周热门 更多>