hi 各位:
我现在需要一个最小单位1ms的定周期。
我使用osal_start_timerEx设置。结果功耗约2.5mA。
后来我是用timer3 定时1mS中断获取定周期1ms,功耗约3.0mA。
想用系统时钟获取准确的1ms,发现无法获取如此精细的1ms。
我该如何获取准确的1ms定周期,而且对功耗影响不大的方法?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
hi 各位:
我现在需要一个最小单位1ms的定周期。
我使用osal_start_timerEx设置。结果功耗约2.5mA。
后来我是用timer3 定时1mS中断获取定周期1ms,功耗约3.0mA。
想用系统时钟获取准确的1ms,发现无法获取如此精细的1ms。
我该如何获取准确的1ms定周期,而且对功耗影响不大的方法?
T_MAC,
timer 2 和 timer 3 为了 省功耗, 在PM2 或 3 的模式下是关闭的, 这个时候你用他们必然会提高功耗.
但从理论上讲, 用 timer 2 的周期去轮询时间, 或者你打开timer 3 或 4 自己再计时, 这是最靠谱的两个方法了. 目前据我所知也没有其他更好的办法.
另外还有一个sleep timer, 是以 32K 时钟来计时的, 在PM2 模式下 也是工作的. 我没有试过用这个timer 去做过定时, 但sleep timer 也用来在PM 2 模式下作为定时来计数, 用以在需要的情况下唤醒系统. 我没有尝试过用这个去计时, 目前也不知道是否可行, 你有时间的话可以尝试一下, 可以通过读取它的counter 寄存器的值, 判断时间间隔. 就是不清楚精准度会如何. 希望能有用.