This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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