cbai 发表于 2025-4-18 15:05:38

第十四课学习心得:IO口都可以中断,但和外部中断有区别,某个IO只支持上升沿中断、下降沿中断、高电平中断、低电平中断中的一种,如果需要同时检测某种信号是上升沿还是下降沿,要将信号同时接到不同的IO口进行上升沿和下降沿检测;课程介绍了IO中断相关的寄存器:中断使能寄存器、中断标志寄存器、中断模式寄存器、中断优先级控制寄存器;并且介绍了keil中如何扩展中断向量号的方式,使keil支持中断向量号大于31;

cbai 发表于 2025-4-18 16:01:35

cbai 发表于 2025-4-18 15:05
第十四课学习心得:IO口都可以中断,但和外部中断有区别,某个IO只支持上升沿中断、下降沿中断、高电平中断 ...
//数码管显示0:执行while函数1:执行P3_IO中断   2:执行P4_IO中断
void P3_IO_Init(void){   //P3口中断初始化
      P3IM0 = 0x00;
      P3IM1 = 0xff;   //IO口中断模式设置为下降沿
      P3INTE = 0x08;//P33口中断使能
}

void P3_IO_Isr(void) interrupt 40 {
      u8 intf = P3INTF;
      if(intf){
                P3INTF = 0;   //手动清除中断标志位
                if(intf & 0x08){      //判断是否是P33按钮按下
                        password = 1;//数码管显示1
                }
      }
}

void P4_IO_Init(void){
      P4IM0 = 0x00;
      P4IM1 = 0xff;
      P4INTE = 0x80;   //P47口中断使能
      PINIPL |= 0x10;
      PINIPH |= 0x10;
}
void P4_IO_Isr(void) interrupt 41 {
      u8 intf = P4INTF;
      if(intf){
                P4INTF = 0;
                if(intf & 0x80){
                        password = 2;
                }
      }
}
为什么这段程序,在按P47按钮时,数码管显示的时空,没有显示2?
页: 1 2 [3]
查看完整版本: 开源嵌入式,激动