找回密码
 立即注册
楼主: cbai

开源嵌入式,激动

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-04-29 15:31:16
已绑定手机

4

主题

37

回帖

154

积分

注册会员

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

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-04-29 15:31:16
已绑定手机

4

主题

37

回帖

154

积分

注册会员

积分
154
发表于 2025-4-18 16:01:35 | 显示全部楼层
cb*** 发表于 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[0] = 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[0] = 2;
                }
        }
}
为什么这段程序,在按P47按钮时,数码管显示的时空,没有显示2?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:15 , Processed in 0.107486 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表