我正在研究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语句都给出了相同的时间。
答案 0 :(得分:1)
不,它不应该。 Timer.getNow()
返回绝对时间,无法更改或重置。 Timer
接口可用于在将来的特定时刻安排事件。 Timer.startPeriodic(offset)
启动计时器,这意味着将来会发出事件Timer.fired()
的信号。在此特定示例中,事件将从致电offset
的{{1}}个单元发出信号,然后无限地重复每个Timer.startPeriodic
个单元,或直到呼叫offset
。无论定时器是否启动,Timer.stop()
的返回值都不会单调变化和增加。