打印

多个中断优先级响应问题

[复制链接]
3425|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
世纪鱼|  楼主 | 2024-3-26 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GD32E503配置了超高分辨率定时器中断和普通定时器TIMER1中断,超高分辨率定时器设置为200KHz,中断优先级nvic_irq_enable(SHRTIMER_IRQ0_IRQn, 2, 0);普通定时器200Hz,nvic_irq_enable(TIMER1_IRQn, 1, 0)。两个中断同时开启时,只有超高分辨率定时器的中断函数执行了,有大佬知道为什么吗?

使用特权

评论回复
沙发
呐咯密密| | 2024-3-28 10:27 | 只看该作者
单独调试TIMER1的中断能执行吗

使用特权

评论回复
板凳
问天少年| | 2024-3-28 11:40 | 只看该作者
先分开调试保证两个都能正常触发

使用特权

评论回复
地板
Estelle1999| | 2024-5-17 11:17 | 只看该作者
确实降低通信频次会降低功耗,而且少唤醒的话也是OK的

使用特权

评论回复
5
Alina艾| | 2024-5-17 12:24 | 只看该作者
其实可以根据优先级设置,超高分辨率定时器的中断函数应该先执行,然后才是普通定时器的中断函数

使用特权

评论回复
6
Carina卡| | 2024-5-17 13:31 | 只看该作者
如果只有超高分辨率定时器的中断函数执行了,可能是中断使能未正确配置导致的

使用特权

评论回复
7
Charlotte夏| | 2024-5-17 14:35 | 只看该作者
一般来说,确保在中断初始化代码中正确地使能了超高分辨率定时器和普通定时器的中断。可以通过调用nvic_irq_enable()函数来使能中断

使用特权

评论回复
8
B1lanche| | 2024-5-17 16:55 | 只看该作者
其实,如果两个中断的优先级相同或者普通定时器的中断优先级高于超高分辨率定时器的中断优先级,那么普通定时器的中断函数可能会先执行

使用特权

评论回复
9
alxd| | 2024-5-18 07:32 | 只看该作者
在中断服务函数中,需要及时清除中断标志位,以便下一次中断能够正确触发。请确保在超高分辨率定时器和普通定时器的中断服务函数中正确地清除中断标志位

使用特权

评论回复
10
Betty996| | 2024-5-18 09:10 | 只看该作者
如果可以的话,其实你可以仿真看看的

使用特权

评论回复
11
Annie556| | 2024-5-18 10:12 | 只看该作者
多个优先级抢占的话,其实可以用操作系统OS了,这样就好了

使用特权

评论回复
12
Betty1299| | 2024-5-18 11:37 | 只看该作者
你可能是在中断里执行的时间太长了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝