Mongoose os 是否可以在Mongoose操作系统中设置带条件的计时器?

Mongoose os 是否可以在Mongoose操作系统中设置带条件的计时器?,mongoose-os,Mongoose Os,我熟悉使用mgos\u msleep(value)或mgos\u usleep(value)。但是,使用睡眠对设备不好 有人能提出更好的方法吗?这取决于系统的体系结构和您的用例 mongoose操作系统中的睡眠呼叫不会导致忙等待。睡眠调用向操作系统传达在睡眠持续时间结束之前不安排特定进程的信息。“mgos_usleep”功能是一种分辨率更高(微秒)的睡眠,其影响应该非常小,但这反过来又取决于您的需求/用例 关于定时器,Mongoose操作系统支持软件定时器和硬件定时器。使用软件定时器或硬件定时器

我熟悉使用
mgos\u msleep(value)
mgos\u usleep(value)
。但是,使用睡眠对设备不好


有人能提出更好的方法吗?

这取决于系统的体系结构和您的用例

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

关于定时器,Mongoose操作系统支持软件定时器和硬件定时器。使用软件定时器或硬件定时器的决定取决于您的应用程序需求

mgos_set_计时器设置一个软件计时器,该计时器具有毫秒超时和相应的回调。软件计时器频率以毫秒为单位指定,软件计时器的数量不受限制。软件计时器回调在mongoose任务上下文中执行。这个计时器似乎精度很低,抖动很高


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

具体说明问题。输入一些代码。