DSP生成正弦波的程序.txt
- 文档编号:1212732
- 上传时间:2023-04-30
- 格式:TXT
- 页数:5
- 大小:4.25KB
DSP生成正弦波的程序.txt
《DSP生成正弦波的程序.txt》由会员分享,可在线阅读,更多相关《DSP生成正弦波的程序.txt(5页珍藏版)》请在冰点文库上搜索。
//�������ڱ仯�����Ҳ�
#include"DSP2833x_Device.h"//DSP2833xHeaderfileIncludeFile
#include"DSP2833x_Examples.h"//DSP2833xExamplesIncludeFile
#include"IQmathLib.h"
#include"qmath.h"
#include"math.h"
#defineN33
#definePI3.1415925
#definePRD600
floatM=0.8;
inti;
//doublea[N];
//unsignedintn=0;
//floatQ;
#definePWM1_INT_ENABLE1
#definePWM2_INT_ENABLE1
#definePWM3_INT_ENABLE1
voidInitEPwm1Example(void);
//voidInitEPwm2Example(void);
//voidInitEPwm3Example(void);
interruptvoidepwm1_timer_isr(void);
//interruptvoidepwm2_timer_isr(void);
//interruptvoidepwm3_timer_isr(void);
//voidInitCmp();
//externUint16NN,MM;
//Uint16NN=24,MM=1;
//Uint16n=0;
Uint16cmp1[360],cmp2[360],cmp3[360];
Uint32EPwm1TimerIntCount;
Uint32EPwm2TimerIntCount;
Uint32EPwm3TimerIntCount;
voidmain(void)
{
InitSysCtrl();
InitEPwm1Gpio();
//InitEPwm2Gpio();
//InitEPwm3Gpio();
DINT;
InitPieCtrl();
IER=0x0000;
IFR=0x0000;
InitPieVectTable();
EALLOW;//ThisisneededtowritetoEALLOWprotectedregisters
PieVectTable.EPWM1_INT=&epwm1_timer_isr;
//PieVectTable.EPWM2_INT=&epwm2_timer_isr;
//PieVectTable.EPWM3_INT=&epwm3_timer_isr;
EDIS;
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;//StopalltheTBclocks
EDIS;
InitEPwm1Example();
//InitEPwm2Example();
//InitEPwm3Example();
//InitCmp();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
EPwm1TimerIntCount=0;
EPwm2TimerIntCount=0;
EPwm3TimerIntCount=0;
IER|=M_INT3;
PieCtrlRegs.PIEIER3.bit.INTx1=PWM1_INT_ENABLE;
//PieCtrlRegs.PIEIER3.bit.INTx2=PWM2_INT_ENABLE;
//PieCtrlRegs.PIEIER3.bit.INTx3=PWM3_INT_ENABLE;
EINT;//EnableGlobalinterruptINTM
ERTM;
{
asm("NOP");
}
}
voidInitEPwm1Example()
{
EPwm1Regs.TBCTL.bit.SYNCOSEL=TB_CTR_ZERO;//zhuyi
EPwm1Regs.TBPRD=PRD;//�ز�����=2*1500TBCLK
EPwm1Regs.TBPHS.half.TBPHS=0x0000;//Phaseis0
EPwm1Regs.TBCTL.bit.PRDLD=TB_SHADOW;
EPwm1Regs.TBCTR=0x0000;
EPwm1Regs.TBCTL.bit.CTRMODE=TB_COUNT_UPDOWN;//Countupdown
EPwm1Regs.TBCTL.bit.PHSEN=TB_DISABLE;//Disablephaseloading
EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV2;//ClockratiotoSYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV2;
EPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADOW;//LoadregisterseveryZERO_PRD
EPwm1Regs.CMPCTL.bit.SHDWBMODE=CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE=CC_CTR_ZERO;//����
EPwm1Regs.CMPCTL.bit.LOADBMODE=CC_CTR_ZERO;
//EPwm1Regs.CMPA.half.CMPA=1000;
EPwm1Regs.AQCTLA.bit.CAU=AQ_CLEAR;//ClearPWM1AonCAU
EPwm1Regs.AQCTLA.bit.CAD=AQ_SET;
EPwm1Regs.AQCTLB.bit.CAU=AQ_SET;//SETPWM1BonCAU�������������
EPwm1Regs.AQCTLB.bit.CAD=AQ_CLEAR;
//setdeadband
//�����ж�
EPwm1Regs.ETSEL.bit.INTSEL=ET_CTR_PRD;//?
SelectINTonZeroPrdevent
EPwm1Regs.ETSEL.bit.INTEN=PWM1_INT_ENABLE;//EnableINT
EPwm1Regs.ETPS.bit.INTPRD=ET_1ST;
}
/*
voidInitCmp()
{
//Uint16i=0;
if(i { cmp1[i]=(Uint16)(EPwm1Regs.TBPRD*0.25*(1+M*sin((2*i)*PI/N)+1+M*sin((2*i+1)*PI/N))); // cmp2[i]=(Uint16)(EvaRegs.T1PR*0.25*(1+M*sin((2*i)*PI/N+PI*4/3)+1+M*sin((2*i+1)*PI/N+PI*4/3))); // cmp3[i]=(Uint16)(EvaRegs.T1PR*0.25*(1+M*sin((2*i)*PI/N+PI*2/3)+1+M*sin((2*i+1)*PI/N+PI*2/3))); i++; } else {i=0;} }*/ //�Ƚ�ֵ�ǰ����Ҳ��仯�� interruptvoidepwm1_timer_isr(void) { if(i { //cmp1[i]=(Uint16)(EPwm1Regs.TBPRD*sin((2*i)*PI/N) cmp1[i]=(Uint16)(EPwm1Regs.TBPRD*0.25*(1+M*sin((2*i)*PI/N)+1+M*sin((2*i+1)*PI/N))); // cmp2[i]=(Uint16)(EvaRegs.T1PR*0.25*(1+M*sin((2*i)*PI/N+PI*4/3)+1+M*sin((2*i+1)*PI/N+PI*4/3))); // cmp3[i]=(Uint16)(EvaRegs.T1PR*0.25*(1+M*sin((2*i)*PI/N+PI*2/3)+1+M*sin((2*i+1)*PI/N+PI*2/3))); EPwm1Regs.CMPA.half.CMPA=cmp1[i]; i++; } else {i=0;} EPwm1Regs.ETCLR.bit.INT=1; PieCtrlRegs.PIEACK.all=PIEACK_GROUP3; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 生成 正弦波 程序