qq_45379364 2024-03-20 14:00 采纳率: 82.9%
浏览 4

关于中断函数的问题,中断多次降临

只启用一个中断函数,定时器开始计时,假如中断函数中程序执行时间较长,在未执行完成时,下一个中断信号又降临,会出现什么状况
例如,假设中断函数中总程序执行花了30秒,而定时某个变量10秒来一次,那么程序未执行完,中断已来三次
会出现这种情况么?结果有什么影响

  • 写回答

3条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-20 14:00
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    会出现这种情况,称为中断嵌套或中断重入。当下一个中断信号到达时,CPU会将当前被执行的中断函数暂停,响应新的中断信号进入新的中断函数执行,而这个暂停和切换过程需要一定的时间,会影响中断函数的执行时间和响应时间,同时也会影响系统的稳定性和可靠性。 影响包括:中断响应变慢、中断执行时间变长、系统性能下降、数据出错或丢失等。 为了避免中断嵌套,可以在中断函数中禁止其它中断的触发,直到该函数执行完毕才允许再次触发中断。这可以通过设置优先级、屏蔽中断或使用锁等方式实现。 以下是禁止中断的示例代码(以STM32为例):
    void TIM1_UP_IRQHandler(void)  // 定时器1更新中断处理函数
    {
        __disable_irq();  // 禁止全局中断
        // 中断函数执行代码...
        __enable_irq();  // 允许全局中断
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日

悬赏问题

  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?