小白求助,stm32生成两条带有相位差的正弦波,相位差具体数值怎么控制?

2019-07-20 23:19发布

           小白求助,本人想用stm32生成两条带有相位差的正弦波,改了下别人的程序测试可行,但我不知道相位差具体数值怎么控制,求指导。
#include "STM32_WaveOutput.h"
#include "delay.h"
/********正弦波1***********/
void SineWave_Data( u16 cycle ,u16 *D)
{
u16 i;
for( i=0;i<cycle;i++)
{
  D=(u16)((Um*sin(( 1.0*i/(cycle-1))*2*PI+K)+Um)*4095/3.3);
}
}
/********正弦波2í**********/
void SawTooth_Data( u16 cycle ,u16 *D)
{
u16 i;
for( i=0;i<cycle;i++)
{
  D=(u16)((Um*sin(( 1.0*i/(cycle-1))*2*PI)+Um)*4095/3.3);
}
}


当K等于6,相位为30度;k=10,为90度;测试好几组K与相位差并没有相应的联系。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。