【问题标题】:Is it possible to set a Timer with condition in Mongoose OS?是否可以在 Mongoose OS 中设置带条件的计时器?
【发布时间】:2019-12-13 12:40:11
【问题描述】:

我熟悉使用mgos_msleep(value)mgos_usleep(value)。但是,使用睡眠对设备不利。

有人可以提出更好的方法吗?

【问题讨论】:

  • 指定问题。输入一些代码。

标签: mongoose-os


【解决方案1】:

这取决于您的系统架构和用例。

猫鼬操作系统中的睡眠调用不会导致忙等待。睡眠调用传达给操作系统在睡眠持续时间结束之前不安排特定进程。 “mgos_usleep”功能是一种分辨率更高(微秒)的睡眠,其影响应该很小,但这又取决于您的要求/用例。

关于定时器,Mongoose OS 支持软件定时器和硬件定时器。使用软件定时器或硬件定时器的决定又取决于您的应用程序要求。

mgos_set_timer 设置软件定时器,超时时间为毫秒,并对应回调。 软件定时器频率以毫秒为单位指定,软件定时器数量不受限制。软件定时器回调在猫鼬任务上下文。这个计时器似乎具有相当低的精度和高抖动。

mgos_set_hw_timer 设置一个具有微秒超时和相应回调的硬件定时器。 硬件定时器回调在 ISR 上下文中执行,因此操作受到限制。硬件计时器或计数器应根据您使用的处理器类型提供,因此您可能需要查看数据表。因此,硬件计时器的数量受到限制,并且频率以微秒为单位指定。

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 2011-07-05
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多