uint32_t CntComputing=0;
extern TIM_TypeDef *TSLAVE;
void ComputingTestDemo(float inp)
{
CntComputing = TSLAVE->CNT;
float x =inp;
for (uint16_t i=0;i<1000;i++)
{
x= sqrtf(1.0+x);
}
CntComputing = TSLAVE->CNT - CntComputing;
TSLAVE->CNT = (uint32_t)x;
asm("nop");
}
使用160MHZ M4,关闭 FPU 进行编译( 基本上相当于160MHZ 的M3 ):
实测运算1000次使用398.25uS ,相当于每次运算 用了67.3条指令。
原先使用FPU 进行编译时,实测运算1000次使用了37.5us。
使用FPU 能快10倍。
看STC32G的实测数据确实比乌龟还慢。
|