OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5277|回复: 10

systick 优先级低会不会影响 系统时间的精确性

[复制链接]

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2018-3-14
在线时间
41 小时
发表于 2019-4-30 17:34:44 | 显示全部楼层 |阅读模式
1金钱
stm32f0 使用了HAL库,但是将systick 的优先级调到了15,在systick中断里面对一个变量加加,这个变量来计算整机的工作时间,这样这个时间是不是不准。还是说虽然systick中断触发了,虽然被别的中断影响了进入时间,但是下一次中断时间还是精确的。这么说吧:
不被延时的systick和下一行被延时的systick:
----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1---------
----------1-----------1---------1----------1----------1----------1-----------1---------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1---------
-----------------1号↑-----2号↑----------------------------------------3号↑------4号↑
1号位置systick 进入中断的时间虽然被延时了,但是2号中断进入的时间还是和正常的一样;是不是这样的原理????????????
还是下面这样的:
不被延时的systick和下一行被延时的systick:
----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1---------
----------1-----------1----------1----------1----------1----------1-----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1----------1---------
-----------------1号↑-----2号↑-----------------------------------------3号↑------4号↑
1号位置systick 进入中断的时间被延时了,2号时间也相应的被延时;还是这样的原理????????????

!!!!!!!!!!原子哥???????????

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
发表于 2019-7-9 17:41:42 | 显示全部楼层
STM32F0的中断优先级只有0 1 2 3吧,而且没有抢占.
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2019-7-19 09:23:15 | 显示全部楼层
同样的疑问,原子哥出来给科普一下吧,如果是在F1或F4中,把systick的优先级设置为最低优先级,而其它优先级的中断是不是会影响systick的中断呢?  比如设置systick中断优先级设置为15,串口中断优先级设置为3, systick是1ms中断一次,如果串口中断中阻塞了3ms,那么这个systick的中断就不准了吧,系统工作的时间也就不准了吧?
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2019-7-19 09:23:59 | 显示全部楼层
回复

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-11-22
在线时间
24 小时
发表于 2019-7-29 15:17:25 | 显示全部楼层
南征北战 发表于 2019-7-19 09:23
同样的疑问,原子哥出来给科普一下吧,如果是在F1或F4中,把systick的优先级设置为最低优先级,而其它优先 ...

串口阻塞之后, 貌似也会进行任务切换吧?
回复

使用道具 举报

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
发表于 2019-7-30 14:55:26 | 显示全部楼层
南征北战 发表于 2019-7-19 09:23
同样的疑问,原子哥出来给科普一下吧,如果是在F1或F4中,把systick的优先级设置为最低优先级,而其它优先 ...

我觉的这样系统时间时不准了.不过为什么要这样如果,
中断阻塞3ms!!!
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2019-7-31 14:58:09 | 显示全部楼层
jiuhao2019 发表于 2019-7-30 14:55
我觉的这样系统时间时不准了.不过为什么要这样如果,
中断阻塞3ms!!!

阻塞说的有点不严谨,应该是在一个中断里边干活3ms。
回复

使用道具 举报

10

主题

293

帖子

0

精华

高级会员

Rank: 4

积分
623
金钱
623
注册时间
2019-6-3
在线时间
107 小时
发表于 2019-7-31 15:10:35 | 显示全部楼层
不懂,坐等大佬来解释
回复

使用道具 举报

4

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
635
金钱
635
注册时间
2019-4-23
在线时间
84 小时
发表于 2019-8-8 20:49:53 | 显示全部楼层
南征北战 发表于 2019-7-31 14:58
阻塞说的有点不严谨,应该是在一个中断里边干活3ms。

一个意思了,可以把这3ms的事分配到任务里去做,中断里就不要做这么长的事,对实时比较好.
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-9-17
在线时间
4 小时
发表于 2019-9-17 08:19:32 | 显示全部楼层
肯定不准啊,但是systick不是用来精准计时的吧,它只是相当于数字电路的时钟信号一样,也不见得非得很精确50%的占空比
回复

使用道具 举报

0

主题

11

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-20
在线时间
6 小时
发表于 2019-11-13 15:43:02 | 显示全部楼层
systick中断被高优先级中断打断后,如果高优先级中断的处理时间超过了1个tick,那就会漏掉了一个systick中断,时间就不准了;
如果高优先级中断的处理时间不超过1个tick的话,不影响计时;
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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