2016-04-26 8 views
0

私は現在tinyosに取り組んでいますが、タイマーをリセットしようとしています は45秒で動作しているときに2秒と言うことができます それは動作しません、タイニーOSタイマーがリセットされない

誰かが私がここに

をそれを把握することができますが、コードは次のとおりです。

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文が同じ時間を与えています。

答えて

1

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

参照:私は Finallを知らせるためのInterface: tos.lib.timer.Timer

+0

感謝。私はそれのための回避策を持って私は古いタイマーを格納し、現在の時間からそれを減算するので、オフセット値だけを表示するように時間を表示します。 – warl0ck

関連する問題