完善资料让更多小伙伴认识你,还能领取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评论
 /7
 /7  
            小黑屋| 手机版| 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号
工商网监
      
      湘ICP备2023018690号
   
 
 
 

 
                             评论
 评论
 淘帖
淘帖
 268
268                                             

 
                    