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.
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結束後重新計時)
"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将不会被处理,并且还可能会中断正常的程序执行。