定时器准点率的问题
时间:10-02
整理:3721RD
点击:
依然是wiki上的这个例程http://processors.wiki.ti.com/index.php/CC2540_Data_Throughput,我把BURST_EVT的间隔改为16ms,每次发送两个20Bytes的包。发送之前在每个包上用osal_GetSysClk()盖上时间戳。分析接收到的数据有70%的发送间隔是16ms,30%发送间隔大于16ms。
这是不是说明osal_start_timer()的准时性很差啊。如果我准备用adc做1kHz的采样,是不是不应该用这个函数定时,那应该用什么来做定时呢?
jeffrey,
如果你需要精确定时的话,建议用硬件的timer去做。
你可以参考一下CC2541的datasheet, 里面有timer配置。可用的timer 有timer1, timer3和timer4.
如果我用1ms的timer引发中断的时候,osal正在进行任务轮询把中断关了,那这个中断就会被错过吗?
中断标志还在的嘛 就不会错过 OS 开了中断后 还会执行 ,但是在OS开中断之前 如果有两次 中断的话 就会丢掉一次
这个事软件定时器 实时性 肯定不是那么好的 ,你可以用定时器1 或者3 来个硬定时啊