外部中断问题

关注

单片机 单片机综合应用 caa9036c66049ace    2018-10-11   |   浏览量 63  
单片机外部中断程序如何设置,要加一个标志位,标志位为一进入中断吗?

全部回答

  • robe_zhang 发表于 2018-10-12

    标志位是状态寄存器里面的位,有中断的时候自动置位,硬件自动完成,如果开启了终端,并且没有更高优先级中断的话,这个中断就执行了,中断标志呀什么的都处理完了,就执行中断回调函数,就是自己的中断服务代码了。

    如果是用 hal 库的话,只要自己实现 callback 函数,就可以执行了。

    回答点赞:   一指破宫 Wyatt0007 yhj416606438 举报 评论 3

  • 代人凌峰 发表于 2018-10-11

    不是要加标志位,而是中断来临之后会程序指针指向中断函数,运行中断函数

    回答点赞:   yhj416606438 举报 评论 1

  • wo4fisher 发表于 2018-10-12

    一般单片机都是不需要的因为最基本的51,都有两个外部中断可以使用。设置好外部中断模式,然后开启总中断、外部中断,写好中断服务函数,还有清中断标志,stm32的话注意开启相关时钟。基本就这些了。

    回答点赞:   yhj416606438 举报 评论 1

  • chenlei1910 发表于 2018-10-11

    看什么单片机,32只要配置好外部中断,一旦中断触发就会自动进入中断函数

    举报 评论 0

  • Spirit 发表于 2018-10-11

    通常外部中断都与IO口有关,也有例外。比如STM32的RTC(实时时钟)相关的中断、USB相关的中断等。按下不提

    因为题主没有提到具体的MCU型号,我也只泛泛而谈

    首先是使中断有效。不管外部中断还是内部中断都 一样。有一个或多个中断使能寄存器,不同的中断源对应不同的位(要查MCU文档)。

    与IO相关的外部中断,进入中断的前提条件是IO口电平有变化。

    比如51单片机,只有IO口下降沿(从高变为低)才会触发中断。 AVR 和ARM可以设置上升沿中断或下降沿中断。


    总结:几乎所有的中断,进入中断的条件都不是程序员去置标志位触发的。都是某个特定条件达到时才会进入。 

    举报 评论 0

  • Spirit 发表于 2018-10-11

    通常外部中断都与IO口有关,也有例外。比如STM32的RTC(实时时钟)相关的中断、USB相关的中断等。按下不提

    因为题主没有提到具体的MCU型号,我也只泛泛而谈

    首先是使中断有效。不管外部中断还是内部中断都 一样。有一个或多个中断使能寄存器,不同的中断源对应不同的位(要查MCU文档)。

    与IO相关的外部中断,进入中断的前提条件是IO口电平有变化。

    比如51单片机,只有IO口下降沿(从高变为低)才会触发中断。 AVR和ARM允许设置上升沿或下降沿触发中断。

    不管是外部或内部中断,都不是程序员去给标志位置1触发的。

    举报 评论 0

  • yhj416606438 发表于 2018-10-12

    51本来就有中断标志位的,可以判断标志位的

    举报 评论 0

  • Wyatt0007 发表于 2018-10-12

    51可以配置自身的寄存器来控制外部中断


    举报 评论 0

  • Timetotemp 发表于 2018-10-12

    外部中断触发了,标志位只是标志有中断发生,然后用来执行其他你想运行的程序

    举报 评论 0

  • 一指破宫 发表于 2018-10-12

    标志位是不需要加的, 如果用到寄存器中的标识, 接收到中断会自动触发的, 做好清除标志位,迎接下一次中断就好

    举报 评论 0

  • fighter-12315 发表于 2018-10-12

    不需要,只要配置好外部中断,声明注册回调函数,单片机上都是有外部中断的一些标志位的,接收到相应触发信号会自动置位,然后COU响应即可。就算不用硬件自动置位非要自己来查询的话也可以,也不需要自己声明标志位,因为单片机里有这个标志位

    举报 评论 0

  • @曲终人散@ 发表于 2018-10-12

    标志为1,同时对应的中断触发使能的同时才会触发中断

    举报 评论 0

  • 明有几时有 发表于 2018-10-12

    这个标志有寄存器中的标志,也可以自己设置一个标志的

    举报 评论 0

  • shakencity 发表于 2018-10-13

    是中断函数决定,不需要标志位吧,中断触发了进入函数即可

    举报 评论 0

  • oh_耗子 发表于 2018-10-13

    首先你说的是哪一种,要看芯片手册。以C51为例子是配置寄存器的,配置完打开,满足条件就自动进入了

    举报 评论 0

  • wanyanfei1984 发表于 2018-10-15

    对于STM来说不需要你说的标志位,而对于51来说有标志位的配置一说。

    具体参考设计说明书手册

    举报 评论 0

  • chen0000009 发表于 20小时前

    这个标志位是靠硬件来检测的,中断多是硬件行为,当开启了中断,一旦标志位被置位就产生一个中断,这个行为不是软件实现的

    举报 评论 0

我来回答

试用推荐

NB-IoT (内置GNSS)开发套件

产品总数:10个  申请人数:20

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
问答积分兑换板卡