微型 OS 计时器未重置

Tiny OS timer not resetting

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

不,不应该。 Timer.getNow() returns 绝对时间,不可更改或重置。 Timer 界面可用于安排未来特定时刻的事件。 Timer.startPeriodic(offset) 启动计时器,这意味着事件 Timer.fired() 将在未来发出信号。在此特定示例中,事件将从对 Timer.startPeriodic 的调用发出 offset 个单位的信号,然后无限重复每个 offset 个单位或直到调用 Timer.stop()。 Return无论定时器是否启动,Timer.getNow()的值不变,单调递增。

参见:Interface: tos.lib.timer.Timer