微小操作系统计时器未重置

时间:2016-04-26 17:38:08

标签: timer tinyos nesc

我正在研究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语句都给出了相同的时间。

1 个答案:

答案 0 :(得分:1)

不,它不应该。 Timer.getNow()返回绝对时间,无法更改或重置。 Timer接口可用于在将来的特定时刻安排事件。 Timer.startPeriodic(offset)启动计时器,这意味着将来会发出事件Timer.fired()的信号。在此特定示例中,事件将从致电offset的{​​{1}}个单元发出信号,然后无限地重复每个Timer.startPeriodic个单元,或直到呼叫offset。无论定时器是否启动,Timer.stop()的返回值都不会单调变化和增加。

请参阅:Interface: tos.lib.timer.Timer