完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
视频教程中10.2节讲到,systick的中断优先级应设为最低值15,那么任何中断都可以将其打断。而延时函数vTaskDelay、delay_ms都通过systick来延时的。
如果打断systick的那个中断执行时间较长,是不是就导致延时不准了? 另外请教下,视频中设置的节拍是1ms,如果想让实时性更高,是不是把宏configTICK_RATE_HZ改大就可以了?似乎还要改其他地方? 谢谢! |
|
相关推荐
8个回答
|
|
是的,所以中断应该越短越好,另外,不建议把configTICK_RATE_HZ调太大,没特殊要求,1ms最大了,最好5ms, 否则任务切换会占用很多CPU。
|
|
|
|
我觉得是的,比如串口的中断抢占优先级设成6(优先级分组是4),那么串口中断服务函数里的处理就要干净利索,所谓快进快出,否则耽误systick的延时处理。 但是应用任务无论优先级多少,都不会对Systick的处理造成影响。
|
|
|
|
明白了。谢谢老大
|
|
|
|
有道理。3q
|
|
|
|
|
|
|
|
但是用Cube进行初始化的话,systick的优先级默认就是最高级啊(除非绕过Cube直接在文件中修改)。
|
|
|
|
vTaskDelayUntil()函数也只是相对的比时vTaskDelay()准一点,vTaskDelayUntil()只能保证按照一定的周期取消阻塞进入就绪态,如果有更高优先级任务或中断,则还是要等待其他的高优先级任务或中断运行结束才能轮到调用vTaskDelayUntil()延时的任务,所以说vTaskDelayUntil()也不一定就能周期性的运行,只是相对vTaskDelay()好一点
|
|
|
|
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); 这条语句是将SYSTICK的抢占优先级设置多少,响应优先级多少呢?
|
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1092浏览 3评论
197浏览 2评论
463浏览 2评论
376浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 04:33 , Processed in 0.919080 second(s), Total 59, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号