标题:
F28335 SPWM源码分享
[打印本页]
作者:
826742820
时间:
2017-9-13 20:54
标题:
F28335 SPWM源码分享
分享一个F28335 SPWM源码
源程序如下:
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
interrupt void EPwm1_isr();
void InitEPwm1Example();
void InitSpwm();
#define N 400 //N:载波比
Uint16 spwmcnt=0; //对SPWM相位的计数
unsigned int f_s=50; //f_s:调制信号频率,
unsigned Period=0; //计数器周期值计算方法
long int ftime=150000000; //CPU频率为150M=100 *100000
const float M_ratio=0.8; //SPWM调制比,可修改
Uint16 CMPA_data[N];
void main(void)
{
Period=ftime/(f_s*N*2); //对应EPwm1 频率为20Khz
InitSpwm();
InitSysCtrl();
DINT;
InitEPwm1Gpio(); //初始化EPwm的输出口
IER=0X0000;
IFR=0X0000;
InitPieVectTable();
EALLOW;
PieVectTable.EPWM1_INT=&EPwm1_isr;
EDIS;
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
EDIS;
InitEPwm1Example(); //初始化EPwm的配置
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
PieCtrlRegs.PIEIER3.bit.INTx1=1; //使能EPwm1中断
IER|=M_INT3;
EINT;
ERTM;
for(;;)
{
}
}
interrupt void EPwm1_isr()
{
if(spwmcnt==N)
{
spwmcnt=0;
}
EPwm1Regs.CMPA.half.CMPA=CMPA_data[spwmcnt++];
EPwm1Regs.ETCLR.bit.INT=1;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;
}
void InitEPwm1Example()
{
EPwm1Regs.TBCTL.bit.CTRMODE=2; //设置为向上向下计数模式
EPwm1Regs.TBPRD=Period; //周期
EPwm1Regs.TBCTL.bit.HSPCLKDIV=0; //高速分频
EPwm1Regs.TBCTL.bit.CLKDIV=0; //时基分频
EPwm1Regs.AQCTLA.bit.ZRO=AQ_SET; //
EPwm1Regs.AQCTLA.bit.CAU=AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAD=AQ_SET;
EPwm1Regs.ETSEL.bit.INTSEL=ET_CTR_ZERO;
EPwm1Regs.ETSEL.bit.INTEN=1;
EPwm1Regs.ETPS.bit.INTPRD=1;
}
void InitSpwm()
{
int i=0;
float sin_table[N]={
0.000000,0.015747,0.031489,0.047224,0.062948,0.078655,0.094343,0.110008,0.125646,0.141252,
0.156823,0.172356,0.187845,0.203288,0.218681,0.234020,0.249300,0.264519,0.279672,
0.294755,0.309766,0.324699,0.339553,0.354322,0.369003,0.383593,0.398087,0.412483,
0.426776,0.440964,0.455042,0.469008,0.482857,0.496587,0.510193,0.523673,0.537023,
0.550240,0.563320,0.576261,0.589059,0.601710,0.614213,0.626563,0.638758,0.650794,
0.662669,0.674380,0.685923,0.697297,0.708497,0.719522,0.730368,0.741034,0.751515,
0.761810,0.771917,0.781831,0.791552,0.801077,0.810403,0.819528,0.828450,0.837166,
0.845675,0.853974,0.862062,0.869935,0.877593,0.885033,0.892254,0.899254,0.906030,
0.912582,0.918908,0.925005,0.930874,0.936511,0.941917,0.947088,0.952025,0.956726,
0.961189,0.965414,0.969400,0.973146,0.976650,0.979912,0.982930,0.985706,0.988236,
0.990522,0.992562,0.994356,0.995903,0.997204,0.998257,0.999062,0.999620,0.999930,
0.999992,0.999806,0.999372,0.998691,0.997761,0.996584,0.995161,0.993490,0.991573,
0.989410,0.987002,0.984349,0.981452,0.978311,0.974928,0.971303,0.967437,0.963332,
0.958987,0.954405,0.949586,0.944532,0.939243,0.933721,0.927968,0.921985,0.915773,
0.909334,0.902670,0.895782,0.888671,0.881341,0.873791,0.866026,0.858045,0.849851,
0.841447,0.832834,0.824015,0.814991,0.805765,0.796340,0.786716,0.776898,0.766887,
0.756686,0.746298,0.735724,0.724968,0.714032,0.702919,0.691632,0.680173,0.668545,
0.656752,0.644796,0.632680,0.620407,0.607980,0.595403,0.582678,0.569808,0.556797,
0.543648,0.530365,0.516949,0.503406,0.489737,0.475947,0.462040,0.448017,0.433884,
0.419643,0.405298,0.390852,0.376310,0.361674,0.346948,0.332136,0.317242,0.302270,
0.287222,0.272104,0.256917,0.241667,0.226358,0.210991,0.195573,0.180106,0.164595,
0.149042,0.133453,0.117831,0.102179,0.086502,0.070804,0.055088,0.039358,0.023619,
0.007874,-0.007874,-0.023619,-0.039358,-0.055088,-0.070804,-0.086502,-0.102179,-0.117830,
-0.133453,-0.149042,-0.164595,-0.180106,-0.195573,-0.210991,-0.226357,-0.241667,-0.256917,
-0.272103,-0.287222,-0.302270,-0.317242,-0.332136,-0.346948,-0.361673,-0.376309,-0.390852,
-0.405297,-0.419643,-0.433884,-0.448017,-0.462040,-0.475947,-0.489737,-0.503405,-0.516949,
-0.530364,-0.543648,-0.556797,-0.569808,-0.582677,-0.595403,-0.607980,-0.620407,-0.632680,
-0.644796,-0.656752,-0.668545,-0.680173,-0.691631,-0.702919,-0.714032,-0.724968,-0.735724,
-0.746298,-0.756686,-0.766887,-0.776898,-0.786716,-0.796339,-0.805765,-0.814991,-0.824015,
-0.832834,-0.841447,-0.849851,-0.858045,-0.866025,-0.873791,-0.881341,-0.888671,-0.895782,
-0.902670,-0.909334,-0.915773,-0.921985,-0.927968,-0.933721,-0.939243,-0.944532,-0.949586,
-0.954405,-0.958987,-0.963332,-0.967437,-0.971303,-0.974928,-0.978311,-0.981451,-0.984349,
-0.987002,-0.989410,-0.991573,-0.993490,-0.995161,-0.996584,-0.997761,-0.998691,-0.999372,
-0.999806,-0.999992,-0.999930,-0.999620,-0.999062,-0.998257,-0.997204,-0.995903,-0.994356,
-0.992562,-0.990522,-0.988236,-0.985706,-0.982931,-0.979912,-0.976650,-0.973146,-0.969400,
-0.965415,-0.961189,-0.956726,-0.952025,-0.947088,-0.941916,-0.936511,-0.930874,-0.925005,
-0.918908,-0.912582,-0.906030,-0.899254,-0.892254,-0.885034,-0.877593,-0.869935,-0.862062,
-0.853974,-0.845675,-0.837166,-0.828450,-0.819528,-0.810403,-0.801077,-0.791553,-0.781832,
-0.771917,-0.761811,-0.751515,-0.741034,-0.730368,-0.719522,-0.708497,-0.697297,-0.685924,
-0.674380,-0.662669,-0.650794,-0.638758,-0.626563,-0.614213,-0.601710,-0.589059,-0.576261,
-0.563320,-0.550240,-0.537023,-0.523673,-0.510193,-0.496587,-0.482857,-0.469008,-0.455043,
-0.440964,-0.426777,-0.412483,-0.398087,-0.383593,-0.369003,-0.354322,-0.339553,-0.324700,
-0.309766,-0.294755,-0.279672,-0.264519,-0.249300,-0.234020,-0.218681,-0.203289,-0.187845,
-0.172356,-0.156823,-0.141252,-0.125646,-0.110009,-0.094344,-0.078656,-0.062948,-0.047224,
-0.031490,-0.015747,0
}; // 50hz正弦波离散化
for(i=0;i<N;i++)
{
CMPA_data[i]=(0.5+0.5*M_ratio*sin_table[i])*Period; //规则采样计算公式 CMPA_data[i]=(0.5+0.5*M_ratio*sin_table[i])*Period
}
}
复制代码
作者:
heartyeah2018
时间:
2017-9-22 09:31
楼主好人一枚
作者:
heartyeah2018
时间:
2017-9-22 09:32
楼主好人一枚
作者:
barrios.mx
时间:
2017-10-7 04:15
Looks retty good, i will try to use it on a F28379D
作者:
nihaozhuyahui
时间:
2018-8-4 22:37
这个很给力,赞一个
作者:
maomao猫
时间:
2018-11-21 15:32
楼主程序里的正弦表是怎么算的??
作者:
vul3tony
时间:
2018-11-22 14:26
楼主一生平安~~感谢
作者:
MAY45
时间:
2019-2-18 08:36
maomao猫 发表于 2018-11-21 15:32
楼主程序里的正弦表是怎么算的??
正弦表可以用MATLAB计算啊,我是这样用的,
作者:
云归GUU
时间:
2019-4-10 10:53
maomao猫 发表于 2018-11-21 15:32
楼主程序里的正弦表是怎么算的??
这个回答好像太晚,下载一个正弦表发生器或者用matlab采样都是可以的。
作者:
sky_study
时间:
2020-5-2 18:44
先下载下来看看
作者:
1961930081
时间:
2020-12-24 09:07
好棒,赞一个
作者:
muttu
时间:
2021-4-19 10:10
这svpwm?
作者:
wvbxj
时间:
2021-9-27 15:32
代码写得不太好
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1