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.

LAUNCHXL-CC1352R1: 在Sensor controller中Event Handler code的執行 是否會影響Execution code的執行時間?

Part Number: LAUNCHXL-CC1352R1

SDK:simplelink_cc13xx_cc26xx_sdk_6_10_00_29

應用場景為:

sensor controller 設定Execution code 定期(200ms) polling sensor data,

sensor收到polling的通知後 要先lock data後才會alert sensor controller 開始讀取data (意即回復sensor data ready的通知)

而sensor controller是用Event Handler code來接收sensor data ready的通知.

問題1:

假設Event Handler code的執行時間是50ms, 那下一次Execution code的執行時間是第(50ms+200ms=)250ms?(意即在Event Handler code執行結束後 Execution code重新計時)

或是一樣為第200ms?(意即Execution code持續計時, Event Handler code不影響 Execution code), 所以在Event Handler code執行完後再經過150ms會啟動Execution code.

問題2:

假設問題1的結果為Execution code持續計時, Event Handler code不影響 Execution code.

那當Event Handler code的執行時間延長為250ms,

Execution code會在Event Handler code執行的中間啟動嗎? 或是會skip一次(skip第200ms), 等到第400ms 時才啟動?

又或是等到Event Handler code執行結束,Execution code在第250ms後接著開始啟動?

問題3:

如果問題2的結果是, 等到Event Handler code執行結束後,Execution code接著開始啟動.

那Execution code執行的時間是150ms?(因為前50ms Event Handler code還在執行)

或是200ms?(Execution code在Event Handler code結束後重新計時)

                   

  • 應該是Event Handler code執行結束後 Execution code重新計時

  • 請問 Execution code是否能用Timer 0 Event Trigger來取代?

    都是固定period執行, 這兩種方法有何差異嗎?

  • 我個人覺得差異不大你要用用Timer 0 Event Trigger來取代或是固定period執行都可以

  • "Note that RTC ticks will be skipped silently if the Sensor Controller does not complete its tasks within a single tick interval."

    我在sensor controller的help 文件中看到這段話.

    請問都skip tick了這樣還會重新計時嗎?

  • 假設Event Handler code的執行時間是50ms, 那下一次Execution code的執行時間是第(50ms+200ms=)250ms?(意即在Event Handler code執行結束後 Execution code重新計時)

    或是一樣為第200ms?(意即Execution code持續計時, Event Handler code不影響 Execution code), 所以在Event Handler code執行完後再經過150ms會啟動Execution code.

    在sensor controller中,使用 RTC 来调度任务。 在使用"fwScheduleTask (tick);"(在您的sensor controller代码中)计划运行任务200ms 后,RTC 将触发task's execution code的执行。 task execution的时间将取决于您何时使用"fwScheduleTask (ticks);"去重新安排下一次执行任务。

    event handler不会影响task's execution code的调度时间。 但是如果任务计划在event handler仍在执行时运行,那么 event handler将在允许运行task execution code之前运行到完成 (在 Sensor Controller Studio 中点击 F1,然后转至"Firmware Framework Description"以查找有关sensor controller中矢量执行的更多信息)。

    請問 Execution code是否能用Timer 0 Event Trigger來取代?

    都是固定period執行, 這兩種方法有何差異嗎?

    如果您需要 Timer0提供的功能,工程师这边在执行时并没有任何问题。

    主要区别在于:使用 RTC 的常规任务调度已在sensor controller框架中得到支持,并且需要较少编码;而使用 Timer0将在计时器的运行方式中提供更大的灵活性。 

    "Note that RTC ticks will be skipped silently if the Sensor Controller does not complete its tasks within a single tick interval."

    我在sensor controller的help 文件中看到這段話.

    請問都skip tick了這樣還會重新計時嗎?

    一般而言,要确保配置的 RTC tick(使用 scifStartRtcTicksNow())足够大,以配合任务的exeuction code。 否则的话,在程序执行期间出现的tick将不会被处理,并且还可能会中断正常的程序执行。