电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 华强电子网APP

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

C2000查表法产生正弦波浅析

来源:华强电子网 作者:华仔 浏览:1924

标签:

摘要: 正弦波的产生使用查表法,sin表里面是250个,0~90度的,步进为0.36度的计算出来的正弦值。利用正弦波的对称性,只需要0~90度的即可。但是这250个值并不是每个都用,而是在程序中由有一个步进值step,u_index += stepv_index += stepw_index += step这个步进值step,同F_OUT相关step = (float ) F_OUT / 10每个周波后,

正弦波的产生使用查表法,sin表里面是250个,0~90度的,步进为0.36度的计算出来的正弦值。利用正弦波的对称性,只需要0~90度的即可。
但是这250个值并不是每个都用,而是在程序中由有一个步进值step,
u_index += step
v_index += step
w_index += step
这个步进值step,同F_OUT相关
step = (float ) F_OUT / 10
每个周波后,index和F_OUT都会复位
if(u_index >= 1000)
{
u_index = 0;
F_OUT = Get_F_Command(); // update Frequency
}
unsigned char Get_F_Command()
{
unsigned char Freq;
// get F_Command;
//e。g。
Freq = 50;
return Freq;
}
实际上F_OUT只在第一个周波内是F_OUT = 200,其他周波都是50
由于VF_Mul_F = (int)F_OUT * VF_RATIO,VF_RATIO是不变的:#define VF_RATIO 327
所以只有在第一个周波内,VF_Mul_F是一个值,其他周波内变成了1/4,(50/200).其他见图:

 

 XXX = VF_Mul_F * (long)sin_TABLE[index - 500]>>16或VF_Mul_F * (long)sin_TABLE[index]>>16或VF_Mul_F * (long)sin_TABLE[999 - index]>>16或(long)sin_TABLE[499 - index] * (long)VF_Mul_F >> 16

之所以第一周波与后面不同,我想是为了驱动大一些,步进更细一些,容易启动一些吧。



技术资讯 技术方案 技术应用 技术新品 技术前沿 行业资讯 行业方案 行业应用 行业新品 行业前沿
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67