2017-04-06 51 views
0

我目前正在Realtek Ameba板上使用FreeRTOS v8.1.2,並使用IAR Embedded Workbench IDE。FreeTTOS中定期計時器的xTimerIsTimerActive()

我面臨一個奇怪的問題,與FreeRTOS的xTimerIsTimerActive() API。 我有一個週期性定時器,對於這個週期性定時器,xTimerIsTimerActive()總是返回True,即使我明確地停止並刪除定時器,通過調用xTimerStop()xTimerDelete()實際上代碼是以重複方式寫入的。 但即使未創建定時器並且定時器句柄初始化爲NULL,xTimerIsTimerActive()也會返回True。

對不起,我不能在這裏發佈代碼,因爲它是適當的。

回答

1

您只能在有效選項上調用API函數。如果在已被刪除的software timer上調用xTimerIsTimerActive(),則該對象不再有效,並且behviour不確定。

+0

但是,如果我停止計時器並且不刪除它,它也會返回true。 – Gaurav

+0

好的,我開始瞭解FreeRTOS的Timer API的行爲。 'xTimerIsTimerActive()'只適用於已到期的單次定時器,而不適用於已停止的定時器定時器。 – Gaurav