2017-04-06 23 views
0

現在Realtek Amebaボード上のFreeRTOS v8.1.2で作業中ですが、IAR Embedded Workbench IDEを使用しています。xTimerIsTimerActive()FreeRTOSの周期タイマー用

私はFreeRTOSのxTimerIsTimerActive() APIで奇妙な問題に直面しています。 私は定期的なタイマーを持っています。この定期的なタイマーのために、xTimerStop()xTimerDelete()を呼び出すことによってタイマーを明示的に停止して削除しても、実際にはコードは繰り返されて書き込まれます。 しかし、xTimerIsTimerActive()は、タイマーが作成されず、タイマーハンドルがNULLに初期化されていてもTrueを返します。

申し訳ございません申し訳ございませんが、コードは適切ですのでここに掲載することはできません。

答えて

1

有効なオプションでのみAPI関数を呼び出すことができます。削除されたsoftware timerのxTimerIsTimerActive()を呼び出すと、そのオブジェクトはもはや有効ではなくなり、その動作は不定になります。

+0

しかし、タイマーを停止してもそれを削除しないとtrueに戻ります。 – Gaurav

+0

私はFreeRTOSのTimer APIの動作を知りました。 'xTimerIsTimerActive()'は、期限切れになっていて、停止している定期タイマーではなく、ワンショットタイマーに対してのみ機能します。 – Gaurav