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.

2640低功耗模式下计时

用2640捕获脉冲输入,最小的脉宽是0.5ms~0.6ms,在正常模式下,使用中断加Clock_getTicks()能够正常捕获。但是在低功耗模式下,Clock_getTicks()好像不怎么精准,不是识别脉冲宽度。有没有什么办法可以解决

  • 进入的是standby还是shutdown?低功耗模式会关闭大部分【甚至全部】外设,包括timer

  • 怎么看进入的是stanby还是shutdown。感觉是stanby模式,因为我把shutdown模式关掉了,现象还是一样的。手册里面写着

    If the next wakeup is in less than 1 ms, the TI-RTOS implementation does not enter standby. If the
    application requires exact timing, consider the latency associated with entering and waking up from
    standby. The TI-RTOS implementation handles this latency by inserting wake-up event four RTC edges
    (64 μs) earlier than the event to ensure the system powers on in time to service the wake-up event
    scheduled by the application.

    怎么理解这句话 If the application requires exact timing, consider the latency associated with entering and waking up from standby. 

  • 主要是通过功耗来判断。shutdown模式功耗更低

    这句话就是说,如果对几十要求精确,需要把进入/推出低功耗的延迟也考虑进去

  • 进入的是standby模式。我采集了一组数据做对比。

    在低功耗模式下,误差已经超过正负20个tick。关掉低功耗误差会小很多。

    我看了一下Power Management for CC26xx SimpleLink Wireless MCUs User’s Guide,里面提到了为了提高响应速度,系统会在下一次任务之前提前从standby模式唤醒,也就是ticks -= Power_wakeDelaySTANDBY / Clock_tickPeriod;。但是如果是IO管脚引起的中断,系统是不是无法提前唤醒。这种情况下会不会导致计时会有误差