【问题标题】:50hz Sine lookup table using PWM使用 PWM 的 50hz 正弦查找表
【发布时间】:2014-05-03 13:55:36
【问题描述】:

有人可以指导我如何在 Atmega32 中使用 PWM 生成查找表以生成 50 hz 正弦波。

这是我到目前为止所做的,但对要做什么感到困惑。

50 Hz 正弦波,因此 20 ms 时间段 256个样本(分割数)

我需要增加的步长 = 20 ms/256 = 0.078125 ms(PWM 信号周期)

角度步长 = 360/256 = 1.40625

正弦波的幅度应该是1。

【问题讨论】:

    标签: atmega trigonometry pwm


    【解决方案1】:

    我认为你从错误的角度开始并因此而迷路。

    忽略查找表,您能否使用对sin() 的显式调用生成 50 Hz PWM 信号?好的。现在查找表为您节省了那些昂贵的sin 调用。 sin 是一个周期函数,因此您只需要存储一个周期 (*)。多少点取决于您的数字输出频率,这将远远超过 50 Hz。 如何定义查找表中的点数。

    要填充查找表,您不会将 PWM 函数的结果发送到数字输出,而是将其写入查找表。要使用查找表,您无需调用昂贵的函数,只需将表条目直接复制到输出中即可。

    有一个常见的优化:一个since函数有很多重复。你不需要存储发送的一半,这只是前半部分的倒数,第二部分只是第一部分的镜像。

    【讨论】:

    • 能否请您提供一些有关我如何创建查找表的更多信息,我对查找表的事情完全陌生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多