-
其实一开始走入死胡同了,这个问题其实可以采用缓存来处理避免了延时的问题,采用定时器中断100us采一个点,存储在一个数组中(或者队列)a,200字节的长度对应20ms时间,满200字节后复制到另外一个200字节数组b,这样在任务中处理数组b就可以,任务阻塞在一个同步信号量上面,等待处理接收信号.完全避免掉了处理机的死循环延时。
-
freertos支持抢占调度和非抢占的时间片调度,我采用的抢占调度,延时的方案我会具体验证下,然后会给出结果。非常感谢txj的回复。
-
freertos缺省的发布是1000Hz,实际使用确实推荐采用更小的频率,我说的任务切换可能描述不准确,任务切换时间是可以做到很短的时间的,我的意思是任务调度周期,rtos肯定会根据一个时间来判断任务的调度,一个任务从睡眠到执行,延时时间大约在100us左右对其他rtos调度任务影响如何?
-
在freertos里面时钟滴答的频率是1000HZ,所以一个滴答的周期就是1ms,所以他任务切换的最小单位也就是1ms。如果可以用死循环的话不用定时器也可以实现思路,任务调度是可抢占的,然后把检测任务优先级设定到最低优先级,然后死循环处理数据采样检测,当高优先级任务触发后可以抢占此任务,但是这个方案也有一个缺陷,如果高优先级的任务执行时间比较长的话,会导致此最低优先级的数据检测导致丢失数据
-
sdfgasdfasdf