你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
MrJiu 发表于 2017-7-28 09:45 一般都是1ms,作为心跳时钟!!!而且从各方面来说1ms也是毕竟适合的!!! ...
liangliangwa 发表于 2017-7-28 09:56 感谢回复!
Inc_brza 发表于 2017-7-28 15:39 看你对实时性的要求,例如我一个按键,10ms才扫描一次,那我没必要开个1ms的中断。 所以,如何才适合,要根 ...
kylongmu 发表于 2017-7-28 15:59 给你个我的经验建议,设置为1000,在线程里采用队列,信号量等能触发线程调度的功能,比如: event = osMes ...
liangliangwa 发表于 2017-7-31 17:33 你这个10ms扫一下按键不会是把SysTick直接配置成10ms一次吧? 你所说的10ms扫一次的话,跟配置SysTick多 ...
感谢回复!
其实就是时间片,把MCU更加合理分配给每一个任何!!!
所以,如何才适合,要根据你自身系统来做考量
给你个我的经验建议,设置为1000,在线程里采用队列,信号量等能触发线程调度的功能,比如:
event = osMessageGet(Queue_PrintHandle, 50);
这样线程会把os主动权让出,同时你的任务还被os监控,整个环境的响应延迟都好。
-------------------------------------------------------------------
如果你某个线程确实任务很轻,可以在线程循环里用:
osDelay(100);
等于人为的把该线程的SysTick调低到10,或者设置变量来动态调节。
你这个10ms扫一下按键不会是把SysTick直接配置成10ms一次吧?
你所说的10ms扫一次的话,跟配置SysTick多少一次中断关系不大,看个人怎么处理这个定时了。
感谢回复!根据你的意思,配置成1000之后,基本算是最小时间片为1ms了,之后可以人为的做延时的时候方便,看来大多数时候,人们习惯用于1ms的SysTick配置。
我只是举个例子,根据系统任务做规划,毕竟中断太频繁不好