• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请教单片机外部中断问题,小白求助

hehexi 2020-12-09 浏览量:697
进入外部中断后把中断关闭,剩下的中断程序是不是等全部执行完后才退出,要是程序内有死循环是不是跳不出中断程序
怎么判断外部中断长按短按,
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 我觉得你对相关概念的理解还比较混乱,一些基础的还需要进一步掌握

    1. 中断处理中肯定不能有死循环,否则是不能跳出中断处理的,一般中断处理要求能够迅速结束

    2. 不知道你所谓的把中断关闭具体是指什么?外部中断响应?其实这个即使关闭了也仅仅是不能再响应外部中断,如果还有级别更高的中断,有些一样可以在中断处理中再中断,如果当前中断处理是不可打断的,就必须要执行完后退出才能进行其他处理。

    3. 程序内有死循环 和 中断处理中有死循环 是两个概念,程序中其实是允许死循环的,大多数逻辑开发中的主进程最后都会进入一个死循环中


    你后面的我想你是想问: 如何通过中断处理的方式,判断长按、短按

    这里需要具体看你的中断触发机制设定,如果能区分按下和释放按钮的情况,则比较简单,因为这个是不同的中断触发,容易区别,比如按下中断的处理是启动一个计数器,释放时停止计数器并根据计数器最后数值是否大于阀值即可区分 到底是长按还是短按。


    有些时候可能没有那么好的中断触发(比如是UI界面的触摸操作),就需要分析相应信号来处理(这时中断大类可能是一个,但中断信息中的信息可能是不同的),但整体的处理思路是类似的。
    • 发布于 2020-12-09
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 中断里面死循环就跳不出来了,除非有高的优先级中断打断他,判断长短按可以加个延时再判断按键的电平,如果恢复了就是短按
    • 发布于2020-12-09
    • 举报
    • 评论 0
    • 1
    • 0

  • 要通过定时器中断实现按键时长计数,如果只有外部中断是不能实现长按短按检测的
    • 发布于2020-12-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断里搞死循环是跳不出来的。你说的意思我不是很明白,你说的是按键做成中断输入的吗?你的思路有问题。可以这样写,如果按键是上拉输入的,设置中断方式是上升沿和下降沿都中断,在下降沿的时候开启定时器,在上升沿的时候关闭定时器,此时去读计数值,以你规定的时间来判断短按和长按。
    • 发布于2020-12-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断里关了当前中断的,中断函数运行完了反回,就无法再进这个中断了吧

    其他的中断可以关的,只是进不了中断函数了

    • 发布于2020-12-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断里面不允许放死循环的

    判断长按短按这种,中断里面只设标志位,计时的功能放到主循环里面

    • 发布于2020-12-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请教单片机外部中断问题,小白求助