大家都知道Z-Stack采取时间片轮询任务调度算法,然而Z-Stack2.3.0的时间片长度为320us,也就是说每隔320us协议栈的 OSAL就开始切换Task。废话不刷了,直入正题吧,我的问题是,假如我有一个传感器,每次读取的时间远大于320us假设读取时间为5ms,我该怎么做才能保证读取过程不被打断呢?刚开始想到中断,后来有觉得不妥,因为5ms中有很多个320us了已经被打断很多次了,纠结啊…. 有哪位大神弄过这类的问题的啊?坐等OutMan
xiao dong jia:
osal并不具备时间片调度功能,任务都是执行完一个再执行下一个的,只是它的最小轮询时间可以达到320us而已
Lin Vigi:
回复 xiao dong jia:
xiao dong jia,能详细的说一下吗?
Lin Vigi:
回复 xiao dong jia:
在osal_start_system( void )中的for死循环中osalTimeUpdate()函数不是更新时间的吗,产生中断的吗,这个又如何解释呢
xiao dong jia:
回复 Lin Vigi:
osalTimeUpdate()函数是用来更新系统时钟的,而且这里面也不产生中断。你没有仔细看代码吧
Lin Vigi:
回复 xiao dong jia:
你说的没错,刚刚看了下,的确是更新系统时间的,至于OSAL能不能处理多任务并发,我明天做实验试试