0

私は現在tinyosに取り組んでおり、タイマーをリセットしようとしています.45秒で実行されているときに2秒と言いますが、機能していません.理由がわかりません.

誰かがそれを理解するのを手伝ってくれますか

コードは次のとおりです。

printf("timer before resetting it %ld",call Timer1.getNow());
offset = ((TimeMote_t*) payload)->tdata;
call Timer1.startPeriodic(offset);
printf("timer after resetting it %ld",call Timer1.getNow());

実際には、タイマーをオフセットにリセットする必要がありますが、リセットしていません。両方の printf ステートメントが同じ時間を与えています。

4

1 に答える 1

1

いいえ、そうすべきではありません。Timer.getNow()変更またはリセットできない絶対時間を返します。Timerインターフェイスを使用して、将来の特定の時点でイベントをスケジュールできます。Timer.startPeriodic(offset)タイマーを開始します。これは、イベントTimer.fired()が将来通知されることを意味します。この特定の例では、イベントはoffsetへの呼び出しからユニットに通知され、ユニットごとに無限に、または への呼び出しまでTimer.startPeriodic繰り返されます。の戻り値は、タイマーを起動してもしなくても変化せず、単調増加します。offsetTimer.stop()Timer.getNow()

参照:インターフェース: tos.lib.timer.Timer

于 2016-04-27T18:15:38.370 に答える