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.

TMS320F28034: 使用_IQ15div()时发现执行时间大概6微秒,普通定点除法大概1.2us,这是正常的吗

Part Number: TMS320F28034


主频60MHz,代码在Fflash中运行,在CMD文件中IQmath分配在Flash区。

使用_IQ15div()计算两个IQ15格式变量作除法,发现执行一次要耗费6us,如果是直接将两个整数变量相除(/),时间大概是1.2us。

这个时间是正常的吗,IQMATH的手册上写明IQNdiv(()耗费59个周期,如果是59个时钟周期的话,那应该是1us左右吧,不知道我的理解对不对?

  • 找到原因了,不是因为_IQ15div()耗时,而是我的用法有问题,_IQ15div(a,_IQ15(b)); 问题出在_IQ15()这个宏定义上,它是用浮点数计算的,所以一个_IQ15()耗时大概5us。 我对_IQ15()这个宏定义的理解看来有问题,它只能用于常数的转换,因为像_IQ15(5.0f)这种可以在编译时由编译器直接算出结果,所以_IQ15()不能用于变量的转换。

  • 正常的话一个IQNdiv()是差不多1us的执行时间。

    感谢你的反馈