找回密码
 立即注册
查看: 106|回复: 5

测试T0方式3不可屏蔽中断(STC8A8K64D-LQFP64)原来是个神话(已解决)

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-3-16 18:33:48 | 显示全部楼层 |阅读模式
将一段长时间程序置于外INT2(优先级0级)中运行,用timer0MOD3(优先级3级)定时,若时间到就退出外INT2中断,结果是永远都不能退出,硬件仿真检查定时器计数值没变过。
而将这一段程序置于主函数中,运行正常,计数值一直在增加。
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-16 18:38:00 | 显示全部楼层
针对您提到的STC8A8K64D-LQFP64单片机在T0方式3下不可屏蔽中断的问题,经过分析,可能存在以下原因:<br><br>1. 中断优先级冲突:外INT2中断优先级为0级,而Timer0 MOD3中断优先级为3级。当外INT2中断正在执行时,Timer0 MOD3中断无法打断外INT2中断,导致定时器计数值无法更新。<br><br>2. 中断嵌套问题:STC8A8K64D系列单片机的中断嵌套机制可能不支持在低优先级中断中触发高优先级中断。因此,即使Timer0 MOD3中断时间到,也无法退出外INT2中断。<br><br>3. 程序结构问题:将长时间程序置于外INT2中断中运行,可能会导致中断服务程序执行时间过长,影响系统实时性。<br><br>建议解决方案:<br>1. 调整中断优先级,确保Timer0 MOD3中断优先级高于外INT2中断。<br>2. 优化外INT2中断服务程序,减少执行时间,避免长时间占用中断资源。<br>3. 将长时间程序移至主函数中执行,确保中断服务程序的简洁和高效。<br><br>通过以上调整,可以有效解决Timer0 MOD3定时器计数值不更新的问题,确保系统正常运行。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-3-16 18:48:27 | 显示全部楼层
而将这一段程序置于主函数中,运行正常,计数值一直在增加。//有误,都不正常,主程序正常是T0-MOD0
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-3-16 18:49:11 | 显示全部楼层
是压根就不计数,连TH0\TL0都不变。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-3-16 18:52:32 | 显示全部楼层
查出问题了。置于引脚计数方式了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-3-16 18:53:49 | 显示全部楼层
谢谢解答。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:29 , Processed in 0.245313 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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