cortex_m3在n个脉冲后禁用pwm

时间:2017-03-20 02:49:24

标签: cortex-m3 pwm adc

使用皮质M3,arduino到期 有没有人知道它是否有可能在这么多脉冲之后得到一个pwm通道来禁用它自己。

我想尝试的是这样的

中断1点火(timer0),  它设置了pwm的延迟和多少个周期

pwm启动并且每个脉冲递增计数器,一旦计数器达到其极限,pwm将自行禁用

我不感兴趣的是在进行计数/禁用的pwm设置之外的任何其他循环

2 个答案:

答案 0 :(得分:0)

只需向执行PWM的定时器添加一个中断(来自"更新"来自"比较" - 结果会略有不同,所以你必须选择你喜欢的那个并在那里增加计数器。一旦计数器达到目标值,只需从中断禁用计时器即可。

答案 1 :(得分:0)

如果您的控制器具有 DMA 和 DMA 迭代计数器,则有更好的方法来处理此问题。

配置 DMA 通道以在每个脉冲上传输一个空字节。配置 DMA 以在迭代计数器达到阈值时引发中断。您可以在此 ISR 处理中停止 PWM 计数器。由于我们使用 DMA 进行脉冲计数,因此 CPU 上的负载很小。