svpwm源程序.doc
- 文档编号:232040
- 上传时间:2022-10-07
- 格式:DOC
- 页数:11
- 大小:48.50KB
svpwm源程序.doc
《svpwm源程序.doc》由会员分享,可在线阅读,更多相关《svpwm源程序.doc(11页珍藏版)》请在冰豆网上搜索。
/TIFile$Revision:
/main/8$
//Checkin$Date:
April21,200815:
41:
53$
//###########################################################################
//
//FILE:
Example_2833xEPwmUpDownAQ.c
//
//TITLE:
空间电压矢量产生程序SVPWM
//
//ASSUMPTIONS:
//
//ThisprogramrequirestheDSP2833xheaderfiles.
//
//MonitorePWM1-ePWM3pinsonanoscilloscopeasdescribed
//below.
//
//EPWM1AisonGPIO0-------5脚
//EPWM1BisonGPIO1-------6脚
//
//EPWM2AisonGPIO2-------7脚
//EPWM2BisonGPIO3-------10脚
//
//EPWM3AisonGPIO4-------11脚
//EPWM3BisonGPIO5-------12脚
//
//
//###########################################################################
//$TIRelease:
DSP2833x/DSP2823xHeaderFilesV1.20$
//$ReleaseDate:
August1,2008$
//###########################################################################
#include"DSP28x_Project.h"//DeviceHeaderfileandExamplesIncludeFile
//Prototypestatementsforfunctionsfoundwithinthisfile.
voidInitEPwm1Example(void);
voidInitEPwm2Example(void);
voidInitEPwm3Example(void);
voidsvpwmGen(void);
interruptvoidsvpwm_isr(void);
volatilefloatUalpha,Ubeta;
volatilefloatA,B,C;
volatilefloatT0,T1,T2,T3,T4,T5,T6;
volatilefloatTaon,Tbon,Tcon;
floatUa,Ub,Uc;
floatTs;
inta,b,c;
intN=0,sector=0;
#defineTPRD800
#defineUdc800
voidmain(void)
{
//Step1.InitializeSystemControl:
//PLL,WatchDog,enablePeripheralClocks
//ThisexamplefunctionisfoundintheDSP2833x_SysCtrl.cfile.
InitSysCtrl();
//Step2.InitalizeGPIO:
//ThisexamplefunctionisfoundintheDSP2833x_Gpio.cfileand
//illustrateshowtosettheGPIOtoit'sdefaultstate.
//InitGpio();//Skippedforthisexample
//ForthiscasejustinitGPIOpinsforePWM1,ePWM2,ePWM3
//ThesefunctionsareintheDSP2833x_EPwm.cfile
InitEPwm1Gpio();
InitEPwm2Gpio();
InitEPwm3Gpio();
//Step3.ClearallinterruptsandinitializePIEvectortable:
//DisableCPUinterrupts
DINT;
//InitializethePIEcontrolregisterstotheirdefaultstate.
//ThedefaultstateisallPIEinterruptsdisabledandflags
//arecleared.
//ThisfunctionisfoundintheDSP2833x_PieCtrl.cfile.
InitPieCtrl();
//DisableCPUinterruptsandclearallCPUinterruptflags:
IER=0x0000;
IFR=0x0000;
//InitializethePIEvectortablewithpointerstotheshellInterrupt
//ServiceRoutines(ISR).
//Thiswillpopulatetheentiretable,eveniftheinterrupt
//isnotusedinthisexample.Thisisusefulfordebugpurposes.
//TheshellISRroutinesarefoundinDSP2833x_DefaultIsr.c.
//ThisfunctionisfoundinDSP2833x_PieVect.c.
InitPieVectTable();
//Interruptsthatareusedinthisexamplearere-mappedto
//ISRfunctionsfoundwithinthisfile.
EALLOW;//ThisisneededtowritetoEALLOWprotectedregisters
PieVectTable.EPWM1_INT=&svpwm_isr;
//PieVectTable.EPWM2_INT=&epwm2_isr;
//PieVectTable.EPWM3_INT=&epwm3_isr;
EDIS;//ThisisneededtodisablewritetoEALLOWprotectedregisters
//Step4.InitializealltheDevicePeripherals:
//ThisfunctionisfoundinDSP2833x_InitPeripherals.c
//InitPeripherals();//Notrequiredforthisexample
//Forthisexample,onlyinitializetheePWM
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
EDIS;
InitEPwm1Example();
InitEPwm2Example();
InitEPwm3Example();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
//Step5.Userspecificcode,enableinterrupts:
//EnableCPUINT3whichisconnectedtoEPWM1-3INT:
IER|=M_INT3;
//EnableEPWMINTninthePIE:
Group3interrupt1-3
PieCtrlRegs.PIEIER3.bit.INTx1=1;
//PieCtrlRegs.PIEIER3.bit.INTx2=1;
//PieCtrlRegs.PIEIER3.bit.INTx3=1;
//EnableglobalInterruptsandhigherpriorityreal-timedebugevents:
EINT;//EnableGlobalinterruptINTM
ERTM;//EnableGlobalrealtimeinterruptDBGM
//Step6.IDLEloop.Justsitandloopforever(optional):
for(;;)
{
asm("NOP");
}
}//main结束
//=======================================================================
interruptvoidsvpwm_isr(void)
{
svpwmGen();
//SetComparevalues
EPwm1Regs.CMPA.half.CMPA=Taon;//adjustdutyforoutputEPWM1A
EPwm2Regs.CMPA.half.CMPA=Tbon;//adjustdutyforoutputEPWM2A
EPwm3Regs.CMPA.half.CMPA=Tcon;//adjustdutyforoutputEPWM3A
//ClearINTflagforthistimer
EPwm1Regs.ETCLR.bit.INT=1;
//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup3
PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;
}
voidInitEPwm1Example()
{
//SetupTBCLK
EPwm1Regs.TBPRD=TPRD;//TPRD=800,Period=1600TBCLKcounts
EPwm1Regs.TBPHS.half.TBPHS=0;//SetPhaseregistertozero
EPwm1Regs.TBCTR=0x0000;//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- svpwm 源程序