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

2812使用库函数在CCS3.3下计算128点的FFT耗时达3ms,怎么达到官方的76.7us啊

GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 10);//0.1m
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平
   fft_init(ipcb1);   fft_subroutine(ipcb1); 

   GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 30);//
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平

void fft_init(long *ipcb)
{
  /*****FFT init*******/
fft.ipcbptr = ipcb;
fft.magptr = mag;
fft.init(&fft);

}
void fft_subroutine(long *ipcb)
{
   RFFT32_brev(ipcb,ipcb,N);
   fft.calc(&fft);
   fft.split(&fft);
   fft.mag(&fft);

}

下面是我拿定时器单步运行测的各个时间

RFFT32_brev(ipcb,ipcb,N);    30*10 = 300us这一步就花好多时间啊。。。。

   fft.calc(&fft);  (178-30)*10=1480us 变成毫秒级了。。。
   fft.split(&fft);(232-178)*10 =540us 还能再长点么
   fft.mag(&fft); (262-232)*10 = 300us
和网上查的一点都不符合啊
128点 用时(us)
1步倒序(RFFT32_brev) 10.8
2步计算(fft.cal) 39
3步实部虚部分离(fft.split) 13.1
4步计算幅值(fft.mag) 13.8
总用时 76.7

 

gang wang14:

你好 请问你的fft结果正确的么?,我的FFT结果幅值全为零,我也用的sprc81,128个点54us,但是结果是错误的,我怀疑是cmd配置有问题  ,请问你的fft结果正确的么?

GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 10);//0.1m
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平
   fft_init(ipcb1);   fft_subroutine(ipcb1); 

   GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 30);//
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平

void fft_init(long *ipcb)
{
  /*****FFT init*******/
fft.ipcbptr = ipcb;
fft.magptr = mag;
fft.init(&fft);

}
void fft_subroutine(long *ipcb)
{
   RFFT32_brev(ipcb,ipcb,N);
   fft.calc(&fft);
   fft.split(&fft);
   fft.mag(&fft);

}

下面是我拿定时器单步运行测的各个时间

RFFT32_brev(ipcb,ipcb,N);    30*10 = 300us这一步就花好多时间啊。。。。

   fft.calc(&fft);  (178-30)*10=1480us 变成毫秒级了。。。
   fft.split(&fft);(232-178)*10 =540us 还能再长点么
   fft.mag(&fft); (262-232)*10 = 300us
和网上查的一点都不符合啊
128点 用时(us)
1步倒序(RFFT32_brev) 10.8
2步计算(fft.cal) 39
3步实部虚部分离(fft.split) 13.1
4步计算幅值(fft.mag) 13.8
总用时 76.7

 

mangui zhang:

如果在单步下计算时间      一般是不准确的

建议你基于CCS的Clock功能去计算出多少个时钟周期    再根据你的sysclk去推算所用时间

这个是比较靠谱的

赞(0)
未经允许不得转载:TI中文支持网 » 2812使用库函数在CCS3.3下计算128点的FFT耗时达3ms,怎么达到官方的76.7us啊
分享到: 更多 (0)