三种SPWM算法源码.docx

上传人:大张伟 文档编号:11657079 上传时间:2021-08-28 格式:DOCX 页数:4 大小:68.67KB
返回 下载 相关 举报
三种SPWM算法源码.docx_第1页
第1页 / 共4页
三种SPWM算法源码.docx_第2页
第2页 / 共4页
三种SPWM算法源码.docx_第3页
第3页 / 共4页
三种SPWM算法源码.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《三种SPWM算法源码.docx》由会员分享,可在线阅读,更多相关《三种SPWM算法源码.docx(4页珍藏版)》请在三一文库上搜索。

1、这个是头文件 spwm. hIviz I! ” I“ 】 1%fx %Lr /I I /* 普八通 SP VM ttifndef NORMAL S PWM H #defi ne _NORMAL_S PWM_H SPWM 表结构体三项公用一个表 typ edef struct _SP WM_tableUi ntl6 TableSize; 表大小即表中所有数据Ui ntl6 Sp wmSize;/SPWM表大小volatile Ui ntl6 *p_S PWM_A;/A相指针volatile Ui ntl6 *p_S PWM_B;B相指针volatile Ui ntl6 *p_SP WM_C;/C

2、相指针Ui nt 16 *p_HeadTable;针./表头指我向SDWM先SP WM_TABLE;extern SPW_TABLE g_SPW_Table; / 全局 SPW 表void In itS pwm(void);void StartS pwm(void);in terru pt void ISR_T1UFINT_NORMAL_FUNC(void);void CalcSpwmWithSym(float32 a/*调制比 */, float32 w_Hz/* 调制频率 */, float32 z_Hz/*载波频 率 */);void CalcSpwmWithlmSym(float32a

3、/*调制比 */, Uintl6 w_Hz/* 调制频率 */, Uint32 z_Hz/*载波频率*/);void CalcSpwmWithArea(float32 a/*调制比 */, Uintl6 w_Hz/* 调制频率 */, Uint32 z_Hz/*载波频率 */);tten dif源文件tti nclude DS P281x. htti nclude SP WM. httin elude float. h ttin elude math. httdefi ne MAX_BUF 400ttdefi ne PI 3. 1415926Ui ntl6 g_sp wm_dataMAX_BU

4、F; / 表的数据存储 SPW_TABLE g_SPW_Table; / 全局 SPWM 表/SPW初始化程序void InitSpwm(void)g_SPW_Table. p_HeadTable = g_spwm_data ; / 指向数据表 g_SPW_Table. TableSize = MAX_BUF; / 存储 表的大小EALLOW;PieVectTable. T1UF1NT=&1SR T1UF1NT NORMAL FUNC; EDIS;开下益中断清楚中断标志响应同组中断1ER | =M_1NT2; 开中断 2 PieCtrlRegs. P1E1ER2. bit. 1NTx6=1;

5、/ EvaRegs. EVA1FRA. bit. T1UF1NT=1;PieCtrlRegs. PIEACK. bit. ACK2 = 1; ) void StartSpwm(void)打开下益中断EvaRegs. EVA1MRA. bit. T1UF1NT = 1; / 5对称规则采样法void Cal cSpwmW i t hSym (f 1 oat 32 a/* 调制比 */, float32 w_Hz/* 调制频率 */, fl oat 32 z_Hz/* 载波频 率 */) (Uintl6 tmp_PR; /Tl 周期值volatile Uintl6 i,n, *p;float32

6、m;m = z_Hz/w_Hz ; /求出载波比 g_SPWM_Table. SpwmSize =(Uintl6)m;tmp_PR = g_Tl_Clk /(2*z_Hz); 计算出其周期值p=g_SPW_Table. p_HeadTable; 得到数据表头指针 for (i=0;i(Uintl6)m;i+) n=tmp_PR* (0. 5-0. 5*a*sin(i+0. 75) *2*Pl/m);*p=n;P+; )不对称规则采样法void CalcSpwmWithlmSym(float32 a/*调制比 */, Uintl6 w_Hz/* 调制频率 */, Uint32 z_Hz/* 载波

7、频率 */)Uintl6 tmp_PR; T1 周期值volatile Uintl6 i,n, *p;float32 m;m = z_Hz/w_Hz ; / 求出载波比 g_SPWM_Table. SpwmSize = (Uintl6)m;tmp_PR = g_Tl_Clk /(2*z_Hz);计算出其周期值p=g_SPW_Table, pJeadTable; / 得到数据表头指针 for (i=0; i(Uintl6)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+;面积法void Ca

8、lcSpwmWithArea(float32 a/*调制比 */, Uintl6 w_Hz/* 调制频率 */, Uint32 z_Hz/*载波频率*/)/Uintl6 tmp_PR; T1 周期值volatile Uintl6 i,n, *p;float32 m, nl, n2;m = z_Hz/w_Hz ; /求出载波比g_SPWM_Table. SpwmSize =(Uintl6)m;/tmp_PR = g_Tl_Clk /(2*z_Hz); 计算出其周期值 p=g_SPW_Table. P_HeadTable; / 得到数据表头指 针n=m;m/=2; 除去一半计算半波nl=(float32)g_Tl_Clk/(8. 0*m*w_Hz) ; / 计算首相n2=(float32)g_T2_Clk/(8. 0*PI*w_Hz)*a;for(i=0;i=g_SPWM_Table. SpwmSize) ent = 0;EvaRegs. EVAIFRA. bit. TlUFINT=l;PieCtrlRegs. PIEACK. bit. ACK2 = 1; EINT;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1