da14531内核定时器:ke_timer_set()函数周期性定时和one-shot模式下,定时精度问题。

1、ke_timer_set()函数如何设置周期模式,或者one-shot模式?

2、在周期性模式下,能看到使用方法一般是使用二次封装函数app_easy_timer()在回调函数里面再次调用这个函数。

例如,我需要严格的100ms定时器触发一次,使用这种方法,首次调用过了100ms后,需要执行到回调以后才能再次设置100ms,从100ms触发到再次设置100ms需要一定的时间。在周期性循环模式下,会不会导致循环周期实际大于100ms?

如果有这个问题,那严格的100ms循环应该怎么实现?

Parents Reply Children
  • 您好,Tim:

    1、根据ke_timer_set()函数头的描述,它是可以支持周期性的定时(在回调函数里面二次调用?),因为不了解这个函数的内部实现方式,不确定这样调用会不会中间有一定的延时,实际测试准确性还是比较高的;

    2、因为我们应用比较注重低功耗,开启其他定时器会导致功耗相对较高,能兼容BLE的定时器最好。

  • Hi SML,

    头文件是指硬件timer可以是周期性的,也可以是one-shot的timer。

    如果你测试在回调中再开启能满足需求,这么用也没问题。

    当然也可以用timer1,timer1是low power的时钟源,功耗会低一些。

    Tim