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結束後重新計時)
YiKai Chen:
應該是Event Handler code執行結束後 Execution code重新計時
,
Hugh:
請問 Execution code是否能用Timer 0 Event Trigger來取代?
都是固定period執行, 這兩種方法有何差異嗎?
,
YiKai Chen:
我個人覺得差異不大你要用用Timer 0 Event Trigger來取代或是固定period執行都可以
,
Hugh:
"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了這樣還會重新計時嗎?
,
Cherry Zhou:
Hugh 说:
假設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中矢量执行的更多信息)。
Hugh 说:
請問 Execution code是否能用Timer 0 Event Trigger來取代?
都是固定period執行, 這兩種方法有何差異嗎?
如果您需要 Timer0提供的功能,工程师这边在执行时并没有任何问题。
主要区别在于:使用 RTC 的常规任务调度已在sensor controller框架中得到支持,并且需要较少编码;而使用 Timer0将在计时器的运行方式中提供更大的灵活性。
Hugh 说:
"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将不会被处理,并且还可能会中断正常的程序执行。