美文网首页
todo 2018-03-20 timer

todo 2018-03-20 timer

作者: hydro | 来源:发表于2018-10-15 07:46 被阅读0次

    How to modify the PWM frequency on the arduino

    http://www.eprojectszone.com/how-to-modify-the-pwm-frequency-on-the-arduino-part1/


    arduino PWM 引脚的缺省频率为

    9、10、约980赫兹, ??

    5、6, 3、11 

    但对于许多应用程序, 我们需要一些更高的频率。arduino 可以产生高达8Mhz 的 PWM 针脚的频率。要修改这些值, 我们需要使用计时器 (其中包含寄存器)。对于 PWM, arduino 有三定时器一为二个别针象:

    定时器 0-pin  5和6

    定时器 1-pin  9和10

    定时器 2-pin  3和11

    在这些寄存器旁边 arduino 可以将PWM 设置为在四种方式

    -快速 PWM

    -相位校正 pwm

    -频率和相位校正 pwm

    -TCT模式


    快速 PWM 模式-定时器计数从底部值到最高值后, 它溢出,再从底部值开始重复 (锯齿波形), 它可以产生更高的频率。

    对于这个模式, 可能的频率是由公式 f=f_clk/N*256, 其中 f 是必要频率, f_clk 是振荡器频率 (16 兆赫) 和 N 是分频器 (它有精确的值, 它是给定的定时器的位, 所以我们将解释它在更多的细节时, 我们会谈论定时器)。


    相位正确的 PWM 模式-定时器计数从底部值到最高值之后, 它不会溢出,从最高值到底部值和重复 (三角波)。这种模式有一半的快速 pwm 模式频率。它是首选的马达控制。

    为这个模式可能的频率由 f=f_clk/N*510 公式获得, 与快速的 pwm 方式类似。


    频率和相位正确的 pwm (仅在定时器 1)-是相同的相位正确的 pwm 如果最高值保持不变, 如果不让 asumme, 我们有两个最高值 TOP1 和 TOP2, TOP1>TOP 2, 当定时器计数高达1和向下到底部的脉搏有一个特定的时间段, 但当定时器计数高达2和下至下, 因为前2是小于前1的脉搏有一个小的时间段, 所以更高的频率 (图片从 atmega 数据表)。



    TCT模式-在此模式计时器计数为最高值, 当它达到该值时, 清除计时器并执行某项。这种模式让我们做非常精确的操作 。


    定时器0管理针脚5和 6, 所以接下来在几个例子中, 我们将告诉你如何管理 pwm 频率。

    假设我们希望在50% 时生成一个具有任务周期的快速 PWM 模式 (我们将在 OCRA 寄存器到达时解释)。

    要在 TCCR0A 中选择快速 pwm 模式, 我们必须使 WGM01 和 WGM00 位等于 1, 如下面的图片 。

    PWM 模式

    正如我们在本文中解释的 arduino 程序, 我们有 TCCR0A=B10100011;这意味着 WGM00 和 WGM01 从 TCCR0A 寄存器是 1, 这意味着 pin 5 和6是在快速 pwm 模式。


    相关文章

      网友评论

          本文标题:todo 2018-03-20 timer

          本文链接:https://www.haomeiwen.com/subject/dotiqftx.html