微型 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()
的值不变,单调递增。
我目前正在研究 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()
的值不变,单调递增。