打印
[APM32F1]

systick嘀嗒定时器配置中断最高优先级还是最低?

[复制链接]
248|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HeartbeatEcho|  楼主 | 2025-3-9 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
systick嘀嗒定时器配置中断最高优先级还是最低?

我在做极海APM32F103CB芯片开发的时候,要使用systick定时器中断。这个内核自带的24位定时器使用非常方便,我也主要用其做为嘀嗒定时器,即由systick产生1ms的时基间隔,并在其中断函数中对具体变量自减处理,具体代码如下:
void systick_handler(void)
{
    if(time_line_ms > 0)
    {
        time_line_ms--;
    }
}
当然,有多个模块需要定时间隔时,上面的变量就会增加。
可是,我在考虑一个问题,如果我将systick的中断优先级设置较高,比如默认的优先级为“0”,那么,其它中断在执行过程中,势必会被systick打断。
这样,会影响项目整体效率或性能吗?如果设置为最低,又会有哪些影响呢?

使用特权

评论回复
沙发
FrostShimmer| | 2025-3-10 16:32 | 只看该作者
我看ARM官方的代码,是默认将其配置为最高优先级了。

使用特权

评论回复
板凳
Gfan| | 2025-3-12 12:13 | 只看该作者
高优先级会打断低优先级的中断。  

当系统中有较多中断,并且触发频率较高的时候,建议滴答中断用低优先级的。不然会影响系统运行时的响应。  

当然,需要根据实际系统的需求以确定滴答中断的合适优先级。

使用特权

评论回复
地板
霜之闪耀| | 2025-3-26 23:42 | 只看该作者
我在项目里面把其设计成高优先级了。
我平时的工业项目里面,对systick的中断的容忍度还是没有问题的。

使用特权

评论回复
5
黎明热忱| | 2025-3-27 18:51 | 只看该作者
看项目的要求吧!
如果优先级不方便是最高,那可以把精度调低一些,比如2ms 嘀嗒一次

使用特权

评论回复
6
雾里闲逛| | 2025-3-29 21:30 | 只看该作者
systick 要放到高优先级里面吧!平时把超时服务的定时器也放到了systick。
也把RTOS的任务切换定时器,如果不放在高级优先级,任务切换也会受到影响

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝