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

[复制链接]
 楼主| HeartbeatEcho 发表于 2025-3-9 17:23 | 显示全部楼层 |阅读模式
systick嘀嗒定时器配置中断最高优先级还是最低?

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

FrostShimmer 发表于 2025-3-10 16:32 | 显示全部楼层
我看ARM官方的代码,是默认将其配置为最高优先级了。
Gfan 发表于 2025-3-12 12:13 来自手机 | 显示全部楼层
高优先级会打断低优先级的中断。  

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

当然,需要根据实际系统的需求以确定滴答中断的合适优先级。
霜之闪耀 发表于 2025-3-26 23:42 | 显示全部楼层
我在项目里面把其设计成高优先级了。
我平时的工业项目里面,对systick的中断的容忍度还是没有问题的。
黎明热忱 发表于 2025-3-27 18:51 | 显示全部楼层
看项目的要求吧!
如果优先级不方便是最高,那可以把精度调低一些,比如2ms 嘀嗒一次
雾里闲逛 发表于 2025-3-29 21:30 | 显示全部楼层
systick 要放到高优先级里面吧!平时把超时服务的定时器也放到了systick。
也把RTOS的任务切换定时器,如果不放在高级优先级,任务切换也会受到影响
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部