TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28035: DSP28035中断计数,太快有问题吗

Part Number:TMS320F28035

在10us周期的中断中,对一个50Hz周期的正弦波采样,计算有效值,但是加了下面的采样代码,就有莫名其妙的问题,比如影响通信等;这些代码有问题吗?

interrupt void isr()
{//10US
     EPwm6Regs.ETCLR.bit.INT = 1; // Clear INT flag for this timer
     PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Acknowledge this int to receive more int from group 3

if(bACSamplyFinish == 0)
{//10us
   TimCount200us++;

   if(TimCount200us >= 20)
   {//200us
      TimCount200us = 0;

      u16AcIbAdc = AdcMirror.ADCRESULT3;
      u16AcIcAdc = AdcMirror.ADCRESULT4;

      g_u32AcIbAdc[ACSamplyCount] = u16AcIbAdc ;

      g_u32AcIbAdc[ACSamplyCount] =u16AcIcAdc ;

                      ACSamplyCount++;

      if(ACSamplyCount >= 100)
      {//20ms
        bACSamplyFinish = 1;
        ACSamplyCount = 0;
      }
   }
}

Barbecue:

代码中并没有耗时的操作,问题似乎不在这里。

注释掉下面这行试试看问题有没有改善

bACSamplyFinish = 1;

,

zhou harry:

这行是为了采样一个周期就开始计算有效值;我刚才用示波器抓过,加了这段代码,至少需要0.65us的时间

,

Ben Qin:

zhou harry 说:但是加了下面的采样代码,

这里指的是哪一部分?

,

zhou harry:

整个

if(bACSamplyFinish == 0){//10us

………………….

}

,

Ben Qin:

AdcMirror.ADCRESULT3这个参数是什么?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28035: DSP28035中断计数,太快有问题吗
分享到: 更多 (0)