DSP生成正弦波的程序.txt资料文档下载
- 文档编号:1448744
- 上传时间:2023-04-30
- 格式:TXT
- 页数:5
- 大小:4.25KB
DSP生成正弦波的程序.txt资料文档下载
《DSP生成正弦波的程序.txt资料文档下载》由会员分享,可在线阅读,更多相关《DSP生成正弦波的程序.txt资料文档下载(5页珍藏版)》请在冰点文库上搜索。
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;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
//StopalltheTBclocks
InitEPwm1Example();
//InitEPwm2Example();
//InitEPwm3Example();
//InitCmp();
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
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<
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)));
i++;
}
else
{i=0;
}*/
//�Ƚ�ֵ�ǰ����Ҳ��仯��
interruptvoidepwm1_timer_isr(void)
//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)));
EPwm1Regs.CMPA.half.CMPA=cmp1[i];
}
EPwm1Regs.ETCLR.bit.INT=1;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 生成 正弦波 程序