用于控制 LED 的硬件定时器 (PWM) 或软件定时器

HW Timer (PWM) or SW Timer to control a LED

正如标题所说,使用通用定时器调光 LED(具有可变占空比的 PWM)通常是好的做法,还是在可用时使用 OS scheduling/tasks 更好( RTOS ecc)? 我最近看到一个使用 RTOS 内部定时器的闪烁 LED 的例子,我想知道定时器的周期是否可以固定到可以使 LED 变暗(~2Khz)的程度。

此致,

如果其他任务干扰 LED 的调度,则在软件中脉冲 LED 可能会闪烁,并且您无法很好地控制亮度。因此,如果 PWM 硬件可用(并且它可以与该引脚一起工作,并且不需要其他东西),我会使用硬件。

一个常见的模式是使用 PWM 来控制 LED 的可见亮度,然后有一个定期安排的软件任务来平滑地改变它(产生淡入淡出、闪烁等),基于计数器和一些state/variables 可能由 其他 任务控制。