/****************************************************************************
*
*文件名:SPWM.c
*
*功 能:产生三相SPWM波形
*
*说 明:EVA下面的通用定时器T1工作于连续增/减计数模式,产生三角载波,载波频率为
* 3000Hz,载波比N=60,因此调制波形正弦波的频率为50Hz。本实验中,调制度为
* 0.8。
*
*作 者: likyo from hellodsp
*
****************************************************************************/
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
Uint32 N=60; //载波比
float M=0.8; //调制度
Uint32 i;
//预存A相和B相的正弦值列表,C相的可以根据A相和B相的值计算出来
float sina[30]={ 0.000000, 0.104528, 0.207911, 0.309016, 0.406737,
0.500000, 0.587785, 0.669131, 0.743145, 0.809017,
0.866025, 0.913545, 0.951057, 0.978148, 0.994522,
1.000000, 0.994522, 0.978148, 0.951057, 0.913545,
0.866025, 0.809017, 0.743145, 0.669131, 0.587785,
0.500000, 0.406737, 0.309016, 0.207911, 0.104528};
float sinb[30]={ 0.866025, 0.809017, 0.743145, 0.669131, 0.587785,
0.500000, 0.406737, 0.309016, 0.207911, 0.104528,
0.000000, -0.104528, -0.207911, -0.309016, -0.406737,
-0.500000, -0.587785, -0.669131, -0.743145, -0.809017,
-0.866025, -0.913545, -0.951057, -0.978148, -0.994522,
-1.000000, -0.994522, -0.978148, -0.951057, -0.913545};
/****************************************************************************
*
*名 称:main()
*
*功 能:初始化系统和各个外设
*
*入口参数:无
*
*出口参数:无
*
****************************************************************************/
void main(void)
{
InitSysCtrl(); //初始化系统函数
DINT;
IER = 0x0000; //禁止CPU中断
IFR = 0x0000; //清除CPU中断标志
InitPieCtrl(); //初始化PIE控制寄存器
InitPieVectTable(); //初始化PIE中断向量表
InitGpio(); //初始化Gpio口
InitEv(); //初始化EV
i=1;
PieCtrl.PIEIER2.bit.INTx4=1; //使能PIE中断,T1定时器中断位于INT2.4
IER|=M_INT2;
EINT; //开全局中断
ERTM; //开实时中断
EvaRegs.T1CON.bit.TENABLE=1; //使能定时器T1计数操作
while(1)
{
}
}