柳诗柯 发表于 2014-8-20 16:20:02

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

程序代码就两个函数
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都没效果。,没找出原因,可能的原因是什么?求助

caoxuedong 发表于 2014-8-21 21:23:52

RA0,RA1,RA2,RA4,需要注意你的ANSELA寄存器的初始化工作,这四个口复位后初始状态是模拟量端口,不是数字IO; RA3要注意你的配置字1,配置字1决定你的RA3引脚是外部复位还是普通数字输入接口。
页: [1]
查看完整版本: PIC16LF1825 IOC 外部电平变化中断问题咨询