请有人指导我如何在Atmega32中使用脉宽调制产生50赫兹正弦波的查找表。
这就是我迄今所做的,但我对该做什么感到困惑。
50 Hz正弦波,时间周期为20 ms,采样数为256个。(各司)
第一步需要增加= 20 ms/256 = 0.078125 ms (脉宽调制信号周期)。
角速度= 360/256 = 1.40625
正弦波振幅应为1。
发布于 2014-05-03 14:22:41
我认为你从错误的起点开始,因此而迷失了方向。
忽略查找表,你能生成一个50赫兹的脉宽调制信号,发出对sin()的明确调用吗?好的。现在,查找表为您节省了昂贵的sin调用。sin是一个周期函数,所以只需要存储一个句点(*)。有多少点取决于你的数字输出频率,这将是远远超过50赫兹。定义查找表中点数的数量。
要填充查找表,您不需要将PWM功能的结果发送到数字输出,而是将其写入查找表。要使用查找表,不需要调用昂贵的函数,只需将表条目直接复制到输出。
有一个常见的优化:a因为函数有很多重复。你不需要存储发送的一半,这只是上半部分的反义词,第二季度只是第一季度的镜像。
https://stackoverflow.com/questions/23445348
复制相似问题