三种SPWM算法源码

三种SPWM算法源码

ID:41126275

大小:28.50 KB

页数:4页

时间:2019-08-17

三种SPWM算法源码_第1页
三种SPWM算法源码_第2页
三种SPWM算法源码_第3页
三种SPWM算法源码_第4页
资源描述:

《三种SPWM算法源码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、三种SPWM算法源码.txt再过几十年,我们来相会,送到火葬场,全部烧成灰,你一堆,我一堆,谁也不认识谁,全部送到农村做化肥。头文件spwm.h/***************普通SPWM程序************************/#ifndef_NORMAL_SPWM_H#define_NORMAL_SPWM_H//SPWM表结构体三项公用一个表typedefstruct_SPWM_table{Uint16TableSize;//表大小即表中所有数据Uint16SpwmSize;//SPWM表大小vol

2、atileUint16*p_SPWM_A;//A相指针volatileUint16*p_SPWM_B;//B相指针volatileUint16*p_SPWM_C;//C相指针Uint16*p_HeadTable;//表头指针指向SPWM表}SPWM_TABLE;externSPWM_TABLEg_SPWM_Table;//全局SPWM表voidInitSpwm(void);voidStartSpwm(void);interruptvoidISR_T1UFINT_NORMAL_FUNC(void);voidCalcS

3、pwmWithSym(float32a/*调制比*/,float32w_Hz/*调制频率*/,float32z_Hz/*载波频率*/);voidCalcSpwmWithImSym(float32a/*调制比*/,Uint16w_Hz/*调制频率*/,Uint32z_Hz/*载波频率*/);voidCalcSpwmWithArea(float32a/*调制比*/,Uint16w_Hz/*调制频率*/,Uint32z_Hz/*载波频率*/);#endif源文件#include"DSP281x.h"#include"SP

4、WM.h"#include"float.h"#include"math.h"#defineMAX_BUF400#definePI3.1415926Uint16g_spwm_data[MAX_BUF];//表的数据存储SPWM_TABLEg_SPWM_Table;//全局SPWM表//SPWM初始化程序voidInitSpwm(void){g_SPWM_Table.p_HeadTable=g_spwm_data;//指向数据表g_SPWM_Table.TableSize=MAX_BUF;//存储表的大小EALLOW;

5、PieVectTable.T1UFINT=&ISR_T1UFINT_NORMAL_FUNC;EDIS;IER

6、=M_INT2;//开中断2PieCtrlRegs.PIEIER2.bit.INTx6=1;//开下益中断EvaRegs.EVAIFRA.bit.T1UFINT=1;//清楚中断标志PieCtrlRegs.PIEACK.bit.ACK2=1;//响应同组中断}voidStartSpwm(void){EvaRegs.EVAIMRA.bit.T1UFINT=1;//打开下益中断}//对称规则采样法voidCal

7、cSpwmWithSym(float32a/*调制比*/,float32w_Hz/*调制频率*/,float32z_Hz/*载波频率*/){Uint16tmp_PR;//T1周期值volatileUint16i,n,*p;float32m;m=z_Hz/w_Hz;//求出载波比g_SPWM_Table.SpwmSize=(Uint16)m;tmp_PR=g_T1_Clk/(2*z_Hz);//计算出其周期值p=g_SPWM_Table.p_HeadTable;//得到数据表头指针for(i=0;i<(Uint16)

8、m;i++){n=tmp_PR*(0.5-0.5*a*sin((i+0.75)*2*PI/m));*p=n;p++;}}//不对称规则采样法voidCalcSpwmWithImSym(float32a/*调制比*/,Uint16w_Hz/*调制频率*/,Uint32z_Hz/*载波频率*/){Uint16tmp_PR;//T1周期值volatileUint16i,n,*p;float32m;m=z_Hz/w_Hz;//求出载波比g_SPWM_Table.SpwmSize=(Uint16)m;tmp_PR=g_T1_

9、Clk/(2*z_Hz);//计算出其周期值p=g_SPWM_Table.p_HeadTable;//得到数据表头指针for(i=0;i<(Uint16)m;i++){n=tmp_PR*(0.5-0.25*a*(sin((i+0.25)*2*PI/m)+sin((i+0.75)*2*PI/m)));*p=n;p++;}}//面积法voidCalcSpwmWi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。