lzx_18570633112

  • 2019-06-14
  • 发表了主题帖: 28335程序

    请问谁有二极管钳位型三电平整流器或者逆变器的在28335上CCS6环境中的程序?

  • 2019-06-12
  • 发表了主题帖: 变量偶尔会出现一个很大的值

    peak_ref=iPEAK[j];采用这种定义语句的时候,为什么peak_ref偶尔会出现一个很大的值?

  • 2019-06-11
  • 发表了主题帖: CCS6调用数组

    请问怎么将一组数据导入CCS6,并用这种数据构造一个周期函数在CCS6里面调用!

  • 2019-06-05
  • 发表了主题帖: 请问怎么在CCS里面调用三角波函数和正弦波函数?

    请问怎么在CCS里面调用三角波函数和正弦波函数?

  • 2019-05-23
  • 发表了主题帖: 28335芯片PWM输出信号一直是高电平

    请问:28335芯片出来的PWM信号一直是高电平,最后从板子出来的也是高电平,这是为什么?

  • 2019-04-27
  • 加入了学习《功率级:高性能参数和MOSFET和栅极驱动器的选择》,观看 功率级:高性能参数和MOSFET和栅极驱动器的选择

  • 加入了学习《DC/DC 变换器设计中的常见错误及解决方案》,观看 DC/DC 变换器设计中的常见错误及解决方案

  • 2019-04-23
  • 回复了主题帖: 采样周期

    maychang 发表于 2019-4-23 08:34 用PWM信号进行十倍频,即可得到周期为PWM周期十分之一的信号。十倍频可以用锁相环实现。
    能不能共享一个用锁相环得到的十分之一PWM信号程序?

  • 发表了主题帖: 采样周期

    怎么样才能使采样触发周期是PWM周期的十分之一,触发源怎么选择?

  • 2019-04-21
  • 回复了主题帖: 峰值电流控制

    maychang 发表于 2019-4-21 16:37 如果是用微处理器控制,可以参考UC3842/3843/3844/3845控制芯片的峰值电流控制,然后将其写成程序。
    有没有DSP28335上实现的峰值电流控制程序?

  • 发表了主题帖: 峰值电流控制

    怎么做DCM情形下的峰值电流控制

  • 2019-04-20
  • 发表了主题帖: 调用EPwm1Regs.TBCTR值的问题

    请问:将JU=EPwm1Regs.TBCTR;时得到的JU为什么一直在100和101之间变化,而不是等于EPwm1Regs.TBCTR的值在1-30000之间变化?就像图中这样的

  • 发表了主题帖: 产生锯齿波

    在DSP28335里面,产生锯齿波的程序是怎么样的?

  • 2019-04-17
  • 发表了主题帖: 产生补偿斜坡

    请问怎么在DSP里面产生用来做峰值电流控制的补偿斜坡?

  • 2019-03-31
  • 发表了主题帖: dspPI控制器程序问题

    interrupt void MainIsr(void) {     ILo = iLo;     ILo_ref = ILO_REF;     ILo_error = ILo_ref-ILo;     ILo_Inter += ILo_error*ILo_I;     if(ILo_Inter > 400)      ILo_Inter = 400000;     else if(ILo_Inter < -400)      ILo_Inter = -400000;     ILo_out = ILo_Inter+ILo_P*ILo_error;     if(ILo_out > 500)      ILo_out = 5000000;     else if(ILo_out < -500)      ILo_out = -5000000;     Uzaibo = ILo_out*0.00009; //     Uzaibo_out = -Uzaibo*30000/2+30000/2;     EPwm2Regs.TBPHS.half.TBPHS = 0.0*30000;//1.06*30000;     EPwm3Regs.TBPHS.half.TBPHS = 1.0*30000;//1.1538*30000;     EPwm4Regs.TBPHS.half.TBPHS = (1.1+0.5*Uzaibo)*30000;//0.1438*30000;+0.5*Uzaibo     EPwm5Regs.TBPHS.half.TBPHS = (0.1+0.5*Uzaibo)*30000;//0.1438*30000;     EPwm2Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000;//+Uzaibo     EPwm3Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000;     EPwm4Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000;     EPwm5Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000;     //EPwm1Regs.CMPA.half.CMPA=30000/2;     //EPwm2Regs.CMPA.half.CMPA=30000/2;         EPwm1Regs.ETCLR.bit.INT =1;         PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; //响应本次接收中断; //        return; } 请问这个中断函数的问题在哪里,PI控制器的写法是不是有问题,因为我从结果得出的结论是PI控制器没有起作用!

  • 2019-03-30
  • 发表了主题帖: 28335主程序错误

    #include "DSP2833x_Device.h" #include "DSP2833x_Examples.h" #include "DSP2833x_GlobalConst.h" #include "DSP2833x_Globalpara.h" #include ".\source\app\AdcProcess.c" #include ".\source\app\Timer.c" #include ".\source\app\MotorCtrl.c" #include "485.c" #include "ECana.c" #include "dmctype.h" #include "rmp_cntl.h" //#include "AD.h" //#include "DA.h" #include "Resolver.h"CLARKE clarkeu=CLARKE_DEFAULTS; CLARKE clarkei=CLARKE_DEFAULTS; PARK parku=PARK_DEFAULTS; PARK parki=PARK_DEFAULTS; PIDREG3 pid1_PLL =PIDREG3_DEFAULTS; PIDREG3 pid1_Speed =PIDREG3_DEFAULTS; PIDREG3 pid1_idloop=PIDREG3_DEFAULTS; PIDREG3 pid1_iqloop=PIDREG3_DEFAULTS; IPARK iparku=IPARK_DEFAULTS; PIDREG3 pid1_vdc =PIDREG3_DEFAULTS; SPEED_ESTIMATION speed1=SPEED_ESTIMATION_DEFAULTS; RMPCNTL rc1=RMPCNTL_DEFAULTS;//AD Adv=AD_DEFAULTS; //DA DAv=DA_DEFAULTS; RESOLVER resolver=RESOLVER_DEFAULTS;interrupt void MainIsr(); interrupt void adc_isr(); //interrupt void CpuTimer0Isr(void); //interrupt void CpuTimer1Isr(void); //interrupt void ISRExint(void); //interrupt void ECanaISR(void); //void InitMboxa(void); //void ClrStatup(void); float32 Ualpha1=0,Ubeta1=0,Ref_theta=0; float Freq1=0; int kk; float32 minus=0,oldElecTheta=0; Uint16 ledcont=0; Uint16 INT3Count=0; float32 Cosine1,Sine1; float theta1=0,vdc1flt=0; Uint32 iqcount=0; Uint32 ao1=0; int key=0,key1count=0,key2count=0; //int kji=0,kreset=0,nreset=0; /**************************************************************采样中断*********************************************************************/Uint16 LoopCount; Uint16 ConversionCount; Uint16 Current1[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; Uint16 CURRENT1 = 0; Uint16 iLo = 0; Uint16 ILO_REF = 41800; Uint16 ILo = 0; Uint16 ILo_ref = 0; Uint16 ILo_error = 0; Uint16 ILo_Inter = 0; Uint16 ILo_out = 0; Uint16 Uzaibo = 0; Uint16 Uzaibo_out = 0; Uint16 ILo_P = 0; Uint16 ILo_I = 0;/***************************************************************主函数*********************************************************************/ #pragma CODE_SECTION(main,"ramfuncs") void main(void) { DSP28x_usDelay(5000); // Initialize System Control registers, PLL, WatchDog, Clocks to default state // This function is found in the DSP280x_SysCtrl.c file InitSysCtrl(); InitGpio(); InitSci(); DINT; IER = 0x0000; IFR = 0x0000; InitPieCtrl(); InitPieVectTable(); InitCpuTimers(); InitAdc();// EALLOW; // SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // EDIS;InitEPwm();// EALLOW; // SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // EDIS;#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT #define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz #endif #if (CPU_FRQ_100MHZ) #define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz #endifEDIS; EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK EDIS;InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000;InitPieVectTable();EALLOW; // This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; PieVectTable.EPWM1_INT = &MainIsr; EDIS; // This is needed to disable write to EALLOW protected registersEALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS;InitAdc(); // For this example, init the ADC InitEPwm();EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS;PieCtrlRegs.PIECTRL.bit.ENPIE = 1; PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |=M_INT1; //开放CPUTimer0/AD/ePWM EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGMPieCtrlRegs.PIECTRL.bit.ENPIE = 1; PieCtrlRegs.PIEIER3.bit.INTx1 = 1; IER |=M_INT3; //开放CPUTimer0/AD/ePWM EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGMEALLOW; EPwm1Regs.ETSEL.bit.INTEN = 1; // Enable EPWM1INT generation EPwm1Regs.ETSEL.bit.INTSEL = 1; // Enable interrupt CNT_zero event EPwm1Regs.ETPS.bit.INTPRD = 1; // Generate interrupt on the 1st event EPwm1Regs.ETCLR.bit.INT = 1; // Enable more interrupts EDIS;EALLOW; // Configure ADC AdcRegs.ADCTRL3.bit.SMODE_SEL= 0x0; //同步采样模式 AdcRegs.ADCTRL1.bit.ACQ_PS = 0xf; //ADC采样时间选择 AdcRegs.ADCTRL3.bit.ADCCLKPS = OSCCLOCK; //ADC内核分频 AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //级联工作方式 AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //级联工作方式 AdcRegs.ADCMAXCONV.all = 0x0000; // Setup 1 conv's on SEQ1 //AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续采样 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x1; //设置CONV0 为第一个通道 AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; //Enable SOCA from ePWM to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; //Enable SEQ1 interrupt (every EOS) //AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续运行模式 //AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; //完成排序后,排序器指针回到最初状态 EDIS;for(;;) { }} /**********************************************************EPWM中断程序*******************************************************************/ #pragma CODE_SECTION(MainIsr,"ramfuncs") interrupt void MainIsr(void) { // float32 vdcMaxPU; // float32 iMaxPU; // float Kiu,Kiv;ILo = iLo; ILo_ref = ILO_REF; ILo_error = ILo_ref-ILo; ILo_Inter += ILo_error*ILo_I; if(ILo_Inter > 400) ILo_Inter = 400; else if(ILo_Inter < -400) ILo_Inter = -400; ILo_out = ILo_Inter+ILo_P*ILo_error; if(ILo_out > 500) ILo_out = 500; else if(ILo_out < -500) ILo_out = -500; Uzaibo = ILo_out/500.0; // Uzaibo_out = -Uzaibo*30000/2+30000/2;EPwm2Regs.TBPHS.half.TBPHS = 0.0*30000;//1.06*30000; EPwm3Regs.TBPHS.half.TBPHS = 1.0*30000;//1.1538*30000; EPwm4Regs.TBPHS.half.TBPHS = (1.1+0.5*Uzaibo)*30000;//0.1438*30000; EPwm5Regs.TBPHS.half.TBPHS = (0.1+0.5*Uzaibo)*30000;//0.1438*30000;EPwm2Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm3Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm4Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm5Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000;//EPwm1Regs.CMPA.half.CMPA=30000/2; //EPwm2Regs.CMPA.half.CMPA=30000/2;EPwm1Regs.ETCLR.bit.INT =1; DINT; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; //响应本次接收中断; PieCtrlRegs.PIEIER1.bit.INTx7 = 1; //开CPUTimer0中断 } /********************************************************************采样中断*************************************************************/ #pragma CODE_SECTION(adc_isr,"ramfuncs") interrupt void adc_isr(void) {Current1[ConversionCount] = AdcRegs.ADCRESULT0 >>4; CURRENT1 +=Current1[ConversionCount];// If 40 conversions have been logged, start over if(ConversionCount == 19) { iLo = CURRENT1; ConversionCount = 0; CURRENT1= 0;} else { ConversionCount++; }// Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIEreturn; } /**************************************************************************************************************************************/ void ClrStatup(void) {Freq1=0;pid1_vdc.Out=0; pid1_vdc.Ref=0; pid1_vdc.Fdb=0; pid1_vdc.Ui=0;pid1_iqloop.Out=0; pid1_iqloop.Fdb=0; pid1_iqloop.Ref=0; pid1_iqloop.Ui=0;pid1_idloop.Out=0; pid1_idloop.Ref=0; pid1_idloop.Fdb=0; pid1_idloop.Ui=0;iparku.Ds=0; iparku.Qs=0;}请问:这个程序的两个中断都能进去,但是最终没有波形输出,这是为什么,错误在哪里?

  • 2019-03-29
  • 发表了主题帖: EPWM中断无法开启

    #include "DSP2833x_Device.h" #include "DSP2833x_Examples.h" #include "DSP2833x_GlobalConst.h" #include "DSP2833x_Globalpara.h" #include ".\source\app\AdcProcess.c" #include ".\source\app\Timer.c" #include ".\source\app\MotorCtrl.c" #include "485.c" #include "ECana.c" #include "dmctype.h" #include "rmp_cntl.h" //#include "AD.h" //#include "DA.h" #include "Resolver.h" CLARKE clarkeu=CLARKE_DEFAULTS; CLARKE clarkei=CLARKE_DEFAULTS; PARK parku=PARK_DEFAULTS; PARK parki=PARK_DEFAULTS; PIDREG3 pid1_PLL =PIDREG3_DEFAULTS; PIDREG3 pid1_Speed =PIDREG3_DEFAULTS; PIDREG3 pid1_idloop=PIDREG3_DEFAULTS; PIDREG3 pid1_iqloop=PIDREG3_DEFAULTS; IPARK iparku=IPARK_DEFAULTS; PIDREG3 pid1_vdc =PIDREG3_DEFAULTS; SPEED_ESTIMATION speed1=SPEED_ESTIMATION_DEFAULTS; RMPCNTL rc1=RMPCNTL_DEFAULTS; //AD Adv=AD_DEFAULTS; //DA DAv=DA_DEFAULTS; RESOLVER resolver=RESOLVER_DEFAULTS; //interrupt void MainIsr(); //interrupt void AdcIsr(); //interrupt void CpuTimer0Isr(void); //interrupt void CpuTimer1Isr(void); //interrupt void ISRExint(void); //interrupt void ECanaISR(void); //void InitMboxa(void); //void ClrStatup(void); float32 Ualpha1=0,Ubeta1=0,Ref_theta=0; float Freq1=0; int kk; float32 minus=0,oldElecTheta=0; Uint16 ledcont=0; Uint16 INT3Count=0; float32 Cosine1,Sine1; float theta1=0,vdc1flt=0; Uint32 iqcount=0; Uint32 ao1=0; int key=0,key1count=0,key2count=0; //int kji=0,kreset=0,nreset=0; /************************************************采样中断*******************************************************/ Uint16 LoopCount; Uint16 ConversionCount; Uint16 Current1[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; Uint16 CURRENT1 = 0; Uint16 iLo = 0; Uint16 ILO_REF = 41800; Uint16 ILo = 0; Uint16 ILo_ref = 0; Uint16 ILo_error = 0; Uint16 ILo_Inter = 0; Uint16 ILo_out = 0; Uint16 Uzaibo = 0; Uint16 Uzaibo_out = 0; Uint16 ILo_P = 0.01; Uint16 ILo_I = 0.10; /*************************************************主函数*******************************************************/ #pragma CODE_SECTION(main,"ramfuncs") void main(void) { DSP28x_usDelay(5000); // Initialize System Control registers, PLL, WatchDog, Clocks to default state // This function is found in the DSP280x_SysCtrl.c file InitSysCtrl(); InitGpio(); InitSci(); DINT; IER = 0x0000; IFR = 0x0000; InitPieCtrl(); InitPieVectTable(); InitCpuTimers(); InitAdc(); // EALLOW; // SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // EDIS; InitEPwm(); // EALLOW; // SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // EDIS; #if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT #define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz #endif #if (CPU_FRQ_100MHZ) #define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz #endif EDIS; EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK;        // HSPCLK = SYSCLKOUT/ADC_MODCLK EDIS; EALLOW; DINT; InitPieCtrl(); // Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; // This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; PieVectTable.EPWM1_INT = &MainIsr; EDIS; // This is needed to disable write to EALLOW protected registers EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS; InitAdc(); // For this example, init the ADC InitEPwm(); EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS; PieCtrlRegs.PIECTRL.bit.ENPIE = 1; PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |=M_INT1; //开放CPUTimer0/AD/ePWM EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM PieCtrlRegs.PIECTRL.bit.ENPIE = 1; PieCtrlRegs.PIEIER3.bit.INTx1 = 1; IER |=M_INT3; //开放CPUTimer0/AD/ePWM EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM EALLOW; // Configure ADC AdcRegs.ADCTRL3.bit.SMODE_SEL= 0x0; //同步采样模式 AdcRegs.ADCTRL1.bit.ACQ_PS = 0xf; //ADC采样时间选择 AdcRegs.ADCTRL3.bit.ADCCLKPS = OSCCLOCK; //ADC内核分频 AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //级联工作方式 AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //级联工作方式 AdcRegs.ADCMAXCONV.all = 0x0000; // Setup 1 conv's on SEQ1 //AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续采样 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x1; //设置CONV0 为第一个通道 AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1; //Enable SOCA from ePWM to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; //Enable SEQ1 interrupt (every EOS) //AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续运行模式 //AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; //完成排序后,排序器指针回到最初状态 EDIS; for(;;) { } } /**********************************************************EPWM中断程序*******************************************************************/ #pragma CODE_SECTION(MainIsr,"ramfuncs") interrupt void MainIsr(void) { //        float32 vdcMaxPU; //        float32 iMaxPU; //        float Kiu,Kiv; ILo = iLo; ILo_ref = ILO_REF; ILo_error = ILo_ref-ILo; ILo_Inter += ILo_error*ILo_I; if(ILo_Inter > 400) ILo_Inter = 400; else if(ILo_Inter < -400) ILo_Inter = -400; ILo_out = ILo_Inter+ILo_P*ILo_error; if(ILo_out > 500) ILo_out = 500; else if(ILo_out < -500) ILo_out = -500; Uzaibo = ILo_out/500.0; // Uzaibo_out = -Uzaibo*30000/2+30000/2; EPwm2Regs.TBPHS.half.TBPHS = 0.0*30000;//1.06*30000; EPwm3Regs.TBPHS.half.TBPHS = 1.0*30000;//1.1538*30000; EPwm4Regs.TBPHS.half.TBPHS = (1.1+0.5*Uzaibo)*30000;//0.1438*30000; EPwm5Regs.TBPHS.half.TBPHS = (0.1+0.5*Uzaibo)*30000;//0.1438*30000; EPwm2Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm3Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm4Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; EPwm5Regs.CMPA.half.CMPA = (0.4+Uzaibo)*30000; //EPwm1Regs.CMPA.half.CMPA=30000/2; //EPwm2Regs.CMPA.half.CMPA=30000/2; EPwm1Regs.ETCLR.bit.INT =1; DINT; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; //响应本次接收中断; PieCtrlRegs.PIEIER1.bit.INTx7 = 1;        //开CPUTimer0中断 } /********************************************************************采样中断*************************************************************/ #pragma CODE_SECTION(adc_isr,"ramfuncs") interrupt void adc_isr(void) { Current1[ConversionCount] = AdcRegs.ADCRESULT0 >>4; CURRENT1 +=Current1[ConversionCount]; // If 40 conversions have been logged, start over if(ConversionCount == 19) { iLo = CURRENT1; ConversionCount = 0; CURRENT1= 0; } else { ConversionCount++; } // Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE return; } /**************************************************************************************************************************************/ 这是我的主函数,我要实现的功能是采集平均电流,并用PI闭环跟踪给定电流!请问我的程序有什么问题?

  • 2019-03-28
  • 发表了主题帖: 如何开启和关断epwm_isr中断

    请文大家DSP28335的问题,程序里能不能暂时关闭epwm_isr中断,待执行完一些语句后重新开启epwm_isr中断?

  • 2019-03-27
  • 回复了主题帖: AD采样平均电流

    elvike 发表于 2019-3-27 02:36 ad高速直接采,软件处理
    28335可以AD高速直接采平均电流么?

  • 2019-03-26
  • 发表了主题帖: AD采样平均电流

    图1 图1是我的电流波形,我现在要控制这个电流,拟用平均电流控制,即采集这个电流一个周期之内的平均值然后控制。现在的问题是我怎么得到这个电流在一个周期之内的平均值,我使用的芯片是TI的芯片TMS320F28335。

最近访客

< 1/1 >

统计信息

已有23人来访过

  • 芯币:99
  • 好友:--
  • 主题:15
  • 回复:3
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言