【问题标题】:Tiny OS timer not resetting微型操作系统计时器未重置
【发布时间】:2016-04-26 17:38:08
【问题描述】:

我目前正在研究 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 tinyos nesc


    【解决方案1】:

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

    见:Interface: tos.lib.timer.Timer

    【讨论】:

    • 感谢您让我知道 Finall。我得到了解决方法,我存储旧计时器并从当前时间中减去它,以便显示时间,以便它只显示偏移值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多