dsp28035的pwm触发adc采样遇到的问题

问题遇到的现象和发生背景

为什么示波器检测不到pwm的波形,还有adc模块有什么错误吗

问题相关代码,请勿粘贴截图

#include "DSP28x_Project.h" // Device Header file and Examples Include File
#include "DSP2803x_Device.h"
#define frequency 40000
#define EPWMCLK 200000000
unsigned int Frequency;//开关频率
float Duty;//占空比
unsigned int PWMTBPRD;//周期寄存器的值
unsigned int PWMCMPA;//比较值CMPA
float Vlotage[];//存放电压采样结果
void configurADC(void);
void configurEPWM(void);
void adc_isr(void);
Uint16 ConversionCount;
void main(void)
{
InitSysCtrl();
InitGpio();
EALLOW;
InitEPwm1Gpio(); //GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;Disable pull-up on GPIO0 (EPWM1A)
EDIS;
DINT;//禁止中断
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.ADCINT1= &adc_isr;
EDIS;
configurADC();
configurEPWM();
IER |= M_INT1;
EINT;//打开中断
ERTM;
PieCtrlRegs.PIEIER1.bit.INTx1=1;
for(; ;)
{

}

}
void configurADC()
{
InitAdc();
ConversionCount=0;
//使能ADC时钟
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;
EALLOW;
AdcRegs.ADCCTL1.bit.INTPULSEPOS=1; //转换完成前一个ADC时钟周期产生EOC
AdcRegs.INTSEL1N2.bit.INT1E=1; //使能ADCINT1
AdcRegs.INTSEL1N2.bit.INT1CONT=1; //开启连续模式
AdcRegs.INTSEL1N2.bit.INT1SEL=1; //将ADCINT1映射到EOC1
AdcRegs.ADCSOC0CTL.bit.CHSEL=0; //将ADCINA0映射到通道0
AdcRegs.ADCSOC1CTL.bit.CHSEL=1; //将ADCINA1映射到通道1
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=5;//set SOC0 start trigger on EPWM1A,
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=5;//set SOC1 start trigger on EPWM1A
AdcRegs.ADCSOC0CTL.bit.ACQPS=6; //设置窗口采样次数
AdcRegs.ADCSOC1CTL.bit.ACQPS=6; //设置窗口采样次数

AdcRegs.ADCCTL1.bit.INTPULSEPOS=1;
AdcRegs.INTSEL1N2.bit.INT1SEL=0;//ADC-A SOC0结束后触发ADC中断
AdcRegs.INTSEL1N2.bit.INT1E=1;//使能ADC中断
AdcRegs.ADCINTFLGCLR.bit.ADCINT1=1;//清除中断标志位
EDIS;

}
interrupt void adc_isr(void)
{
if(ConversionCount == 9)
{
ConversionCount = 0;
}
else ConversionCount++;

  Vlotage[ConversionCount] = (float)(AdcResult.ADCRESULT1)*3.0/4096;
  if(Duty>0.95)
  {
      Duty=0.95;
  }
  else if(Duty<0.05)
  {
      Duty=0.05;
  }
  PWMCMPA=Duty*PWMTBPRD;
  EPwm1Regs.CMPA.half.CMPA=PWMCMPA;
  AdcRegs.ADCINTFLGCLR.bit.ADCINT1=1;//清除中断标志位
  PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;

}
void configurEPWM()
{
EALLOW;
Frequency=frequency;
PWMTBPRD=EPWMCLK/Frequency-1;
EPwm1Regs.TBCTL.bit.CTRMODE=0;//向上计数模式
EPwm1Regs.TBPRD=PWMTBPRD;//设置PWM波周期
EPwm1Regs.TBCTR=0x0000;//清除计数值
EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV1;//TB_DIV1=0X0
EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;//SA 影子寄存器
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;//SB 影子寄存器
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;//CTL=0时加载
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;//CTL=0时加载

EPwm1Regs.AQCTLA.bit.CAD=AQ_SET;//set PWM1A on event A,down count
EPwm1Regs.AQCTLA.bit.ZRO=AQ_CLEAR;// clear PWM1A on event A
EPwm1Regs.ETSEL.bit.SOCAEN=1;//使能A组的信号
EPwm1Regs.ETSEL.bit.SOCASEL=1;//计数器为0时触发soc
EPwm1Regs.ETPS.bit.SOCAPRD=1;//第一次满足条件时就产生SOC信号
//使能EPWM1时钟
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK=1;
EDIS;

}

#include "DSP28x_Project.h" // Device Header file and Examples Include File
#include "DSP2803x_Device.h"
#define frequency 40000
#define EPWMCLK 200000000
unsigned int Frequency;//开关频率
float Duty;//占空比
unsigned int PWMTBPRD;//周期寄存器的值
unsigned int PWMCMPA;//比较值CMPA
float Vlotage[];//存放电压采样结果
void configurADC(void);
void configurEPWM(void);
void adc_isr(void);
Uint16 ConversionCount;
void main(void)
{
InitSysCtrl();
InitGpio();
EALLOW;
InitEPwm1Gpio(); //GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;Disable pull-up on GPIO0 (EPWM1A)
EDIS;
DINT;//禁止中断
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.ADCINT1= &adc_isr;
EDIS;
configurADC();
configurEPWM();
IER |= M_INT1;
EINT;//打开中断
ERTM;
PieCtrlRegs.PIEIER1.bit.INTx1=1;
for(; ;)
{

}

}
void configurADC()
{
InitAdc();
ConversionCount=0;
//使能ADC时钟
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;
EALLOW;
AdcRegs.ADCCTL1.bit.INTPULSEPOS=1; //转换完成前一个ADC时钟周期产生EOC
AdcRegs.INTSEL1N2.bit.INT1E=1; //使能ADCINT1
AdcRegs.INTSEL1N2.bit.INT1CONT=1; //开启连续模式
AdcRegs.INTSEL1N2.bit.INT1SEL=1; //将ADCINT1映射到EOC1
AdcRegs.ADCSOC0CTL.bit.CHSEL=0; //将ADCINA0映射到通道0
AdcRegs.ADCSOC1CTL.bit.CHSEL=1; //将ADCINA1映射到通道1
AdcRegs.ADCSOC0CTL.bit.TRIGSEL=5;//set SOC0 start trigger on EPWM1A,
AdcRegs.ADCSOC1CTL.bit.TRIGSEL=5;//set SOC1 start trigger on EPWM1A
AdcRegs.ADCSOC0CTL.bit.ACQPS=6; //设置窗口采样次数
AdcRegs.ADCSOC1CTL.bit.ACQPS=6; //设置窗口采样次数

AdcRegs.ADCCTL1.bit.INTPULSEPOS=1;
AdcRegs.INTSEL1N2.bit.INT1SEL=0;//ADC-A SOC0结束后触发ADC中断
AdcRegs.INTSEL1N2.bit.INT1E=1;//使能ADC中断
AdcRegs.ADCINTFLGCLR.bit.ADCINT1=1;//清除中断标志位
EDIS;

}
interrupt void adc_isr(void)
{
if(ConversionCount == 9)
{
ConversionCount = 0;
}
else ConversionCount++;

  Vlotage[ConversionCount] = (float)(AdcResult.ADCRESULT1)*3.0/4096;
  if(Duty>0.95)
  {
      Duty=0.95;
  }
  else if(Duty<0.05)
  {
      Duty=0.05;
  }
  PWMCMPA=Duty*PWMTBPRD;
  EPwm1Regs.CMPA.half.CMPA=PWMCMPA;
  AdcRegs.ADCINTFLGCLR.bit.ADCINT1=1;//清除中断标志位
  PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;

}
void configurEPWM()
{
EALLOW;
Frequency=frequency;
PWMTBPRD=EPWMCLK/Frequency-1;
EPwm1Regs.TBCTL.bit.CTRMODE=0;//向上计数模式
EPwm1Regs.TBPRD=PWMTBPRD;//设置PWM波周期
EPwm1Regs.TBCTR=0x0000;//清除计数值
EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV1;//TB_DIV1=0X0
EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;//SA 影子寄存器
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;//SB 影子寄存器
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;//CTL=0时加载
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;//CTL=0时加载

EPwm1Regs.AQCTLA.bit.CAD=AQ_SET;//set PWM1A on event A,down count
EPwm1Regs.AQCTLA.bit.ZRO=AQ_CLEAR;// clear PWM1A on event A
EPwm1Regs.ETSEL.bit.SOCAEN=1;//使能A组的信号
EPwm1Regs.ETSEL.bit.SOCASEL=1;//计数器为0时触发soc
EPwm1Regs.ETPS.bit.SOCAPRD=1;//第一次满足条件时就产生SOC信号
//使能EPWM1时钟
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK=1;
EDIS;

}

运行结果及报错内容

没报错,但示波器的epwm波不对

我的解答思路和尝试过的方法
我想要达到的结果