如果要求不是非常高的频率的PWM模式可以使用,没有额外的附加DA的输出分辨率可以灵活调整。
考虑微控制器的计算能力不强,你可以用EXCEL编制一个正弦信号在一个周期内以相等的间隔幅度表,例如,一个周期的正弦信号分为64点,信号的峰值是1000,初始相位为0°,此表中,那么,第一点是0点#n的千*罪(2πn/64),完成后,EXCEL计算64点的振幅按照编制之形式,以可以接受的形式的编程语言的需要。 />微控制器的定时器,定时器溢出值被设置为1000,溢出的IO端口输出低电平,然后一个寄存器存储的输出点的序号为n,通过以下方式获得的查找到输出点号表1000 *的罪(2πn/64)的价值,1000定时器的计数值*罪(2πn/64)相比都是平等的,IO端口输出高。连续循环执行程序,IO输出的占空比的正弦信号的方波信号,也就是常说的正弦调制的PWM信号的振幅成比例。 />设计一个积极的低通滤波器,可调增益,低通滤波器后的PWM信号,输出为正弦波,低通滤波器的增益调整的正弦信号的振幅可以改变的。
当然,当PWM占空比设置,查表结果先乘以设定的值(通常为0到1之间的十进制),您还可以调整输出振幅。为了简化计算,可以先乘以一个整数M,再除以由N(N是2的幂的128256值?)中,M的取值范围为0到n,因为这个划分可以是进行,该计划是通过移位操作简单,快速。