• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 28335  spwm  

资源简介

利用TMS320F28335生成正弦波

资源截图

代码片段和文件信息

//产生周期变化的正弦波
#include “DSP2833x_Device.h“     // DSP2833x Headerfile Include File
#include “DSP2833x_Examples.h“   // DSP2833x Examples Include File

#include “IQmathLib.h“
#include “qmath.h“
#include “math.h“

#define N  33
#define PI 3.1415925
#define PRD 600
float M=0.8;
int i;
//double a[N];

//unsigned int n=0; 
//float Q;

#define PWM1_INT_ENABLE  1
#define PWM2_INT_ENABLE  1
#define PWM3_INT_ENABLE  1

void InitEPwm1Example(void);
//void InitEPwm2Example(void);
//void InitEPwm3Example(void);

interrupt void epwm1_timer_isr(void);
//interrupt void epwm2_timer_isr(void);
//interrupt void epwm3_timer_isr(void);

//void InitCmp();
//extern Uint16 NNMM;
//Uint16 NN=24MM=1;
//Uint16 n=0;
Uint16 cmp1[360]cmp2[360]cmp3[360];

Uint32  EPwm1TimerIntCount;
Uint32  EPwm2TimerIntCount;
Uint32  EPwm3TimerIntCount;

void main(void)
{
   InitSysCtrl();
   InitEPwm1Gpio();
 //  InitEPwm2Gpio();
  // InitEPwm3Gpio();
   DINT;
   InitPieCtrl();
   IER = 0x0000;
   IFR = 0x0000;
   InitPieVectTable();
   EALLOW;  // This is needed to write to EALLOW protected registers
   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;      // Stop all the TB clocks
   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;   // Enable Global interrupt INTM
   ERTM;   
   {
       asm(“   NOP“);
   }
}



void InitEPwm1Example()
{

   EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//zhuyi 
   EPwm1Regs.TBPRD = PRD;          //载波周期=2*1500TBCLK
   EPwm1Regs.TBPHS.half.TBPHS = 0x0000;            // Phase is 0
   EPwm1Regs.TBCTL.bi

评论

共有 条评论