找回密码
 立即注册
查看: 412|回复: 3

中断优先级问题

[复制链接]

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-12-11 16:51:15 | 显示全部楼层 |阅读模式
AI8H1K08,使用IIC从机,在中断接受数据,IIC中断优先级设置为最高,
Timer定时器2中断服务函数中做数据的处理,优先级设置比IIC低,测试过程中发现,
IIC数据会因为Timer定时器中断的执行而被影响导致数据发生改变,
理论上IIC优先级不是最高吗
截图202412111650365495.jpg
clock线被拉低了,后面的数据全是错误的

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:471
  • 最近打卡:2025-06-27 10:50:20

33

主题

2437

回帖

5186

积分

论坛元老

积分
5186
发表于 2024-12-11 17:10:58 | 显示全部楼层
硬件IIC的中断应该只是完成命令操作后给CPU的中断,,,而且理论上来说Timer的中断不会影响IIC外设的工作,,
但是没有给出代码,不清楚为什么出现你这样的情况。。要不你试一试把定时器相关代码去掉,,只看IIC是否正确工作?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-12-11 18:02:22 | 显示全部楼层
_奶*** 发表于 2024-12-11 17:10
硬件IIC的中断应该只是完成命令操作后给CPU的中断,,,而且理论上来说Timer的中断不会影响IIC外设的工作, ...

有尝试过,把耗时长的部分代码去除,接受就正常了,如果在Timer中断中做一些类似死等的延时操作来模拟正常工作很容易就可以复现IIC数据出错的情况,我的IIC代码和官网例程的差不多
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 2024-12-11 21:58:31 | 显示全部楼层
一个中断依赖另一个中断中的状态可能导致这个问题,注意不能出现高优先级中断依赖低优先级中断的情况,这样无法形成中断嵌套,也不能出现循环依赖的情况,否则会状态机锁死导致死机
中断函数内不要使用printf,不要使用延时函数
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-28 23:46 , Processed in 0.558538 second(s), 71 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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