标题:
DSP28x两电平SPWM源码
[打印本页]
作者:
D_alone
时间:
2018-3-16 15:09
标题:
DSP28x两电平SPWM源码
DSP28x芯片两电平SPWM
0.png
(55.89 KB, 下载次数: 66)
下载附件
2018-3-16 18:11 上传
dsp源程序如下:
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
#include "math.h"
#define pi 3.141592653
#define N 480 //正弦采样点个数
#define m 0.8 //调制比
float sina[N];
/*
float sina[120]={0.000000, 0.026177, 0.052336, 0.078459, 0.104528,
0.130526, 0.156434, 0.182236, 0.207912, 0.233445,
0.258819, 0.284015, 0.309017, 0.333807, 0.358368,
0.382683, 0.406737, 0.430511, 0.453990, 0.477159,
0.500000, 0.522499, 0.544639, 0.566406, 0.587785,
0.608761, 0.629320, 0.649448, 0.669131, 0.688355,
0.707107, 0.725374, 0.743145, 0.760406, 0.777146,
0.793353, 0.809017, 0.824126, 0.838671, 0.852640,
0.866025, 0.878817, 0.891007, 0.902585, 0.913545,
0.923880, 0.933580, 0.942641, 0.951057, 0.958820,
0.965926, 0.972370, 0.978148, 0.983255, 0.987688,
0.991445, 0.994522, 0.996917, 0.998630, 0.999657,
1.000000, 0.999657, 0.998630, 0.996917, 0.994522,
0.991445, 0.987688, 0.983255, 0.978148, 0.972370,
0.965926, 0.958820, 0.951057, 0.942641, 0.933580,
0.923880, 0.913545, 0.902585, 0.891007, 0.878817,
0.866025, 0.852640, 0.838671, 0.824126, 0.809017,
0.793353, 0.777146, 0.760406, 0.743145, 0.725374,
0.707107, 0.688355, 0.669131, 0.649448, 0.629320,
0.608761, 0.587785, 0.566406, 0.544639, 0.522499,
0.500000, 0.477159, 0.453990, 0.430511, 0.406737,
0.382683, 0.358368, 0.333807, 0.309017, 0.284015,
0.258819, 0.233445, 0.207912, 0.182236, 0.156434,
0.130526, 0.104528, 0.078459, 0.052336, 0.026177};//定义正弦函数
*/
int16 i = 0;
void main ()
{
InitSysCtrl();
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
InitGpio();
InitEv(); //开外设定时器中断
PieCtrl.PIEIER2.bit.INTx4 = 1;//开PIE定时器中断
IER = 0x0002;//开CPU中断
EINT;//开全局中断
ERTM;//开实时中断
EvaRegs.T1CON.bit.TENABLE = 1;//使能T1定时器
while(1)
{
}
}
///////////////////////EVA定时器中断//////////////////////
interrupt void T1PINT_ISR(void) // EV-A
{
if((i>=0)&&(i<=N))
{
sina[i] = sin(i * 2 * pi/N);
EvaRegs.CMPR1 = EvaRegs.T1PR * m * sina[i];
}//比较寄存器的值更新
i++;
if(i > N)
{
i = 0;
}
PieCtrl.PIEACK.all = PIEACK_GROUP2;//响应同组其余中断
EvaRegs.EVAIFRA.bit.T1PINT = 1;//清中断标志位
}
复制代码
所有资料51hei提供下载:
SPWM.zip
(610.67 KB, 下载次数: 48)
2018-3-16 15:09 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1