Thread 中讨论的其他器件:controlSUITE、 C2000WARE
你(们)好
我想使用 F28035上的 IQMath 库计算正弦和余弦值。
但是、如果我测量计算的运行时间、则需要两倍于文档中所述的时间。
//优化4,速度/大小4:365个周期(RAM 不足) _iq29 iq29PosRad =_IQ29mpyI32 (IQ29_INC_TO_RAD、u16Pos); // 4. _iq29 iq29Sin =_IQ29sin (iq29PosRad); //46. _iq29 iq29Cos =_IQ29cos (IQ29PosRad); //44. _iq29 iq29Sinus =_IQ29mpy (iq29Sin、_IQ29 (fAmpl)); // 6. _iq29 iq29Cosinus =_IQ29mpy (iq29Cos、_IQ29 (fAmpl)); // 6. _iq29 iq29PwmA =_IQ29mpyI32int (iq29Sinus +_IQ29 (1)、PWM_PERIODE/2);// 22. _iq29 iq29PwmB =_IQ29mpyI32int (iq29Cosinus +_IQ29 (1)、PWM_PERIODE/2);// 22 => Summe 150个周期 Set_PWM (iq29PwmA、iq29PwmB);
我使用计时器和 GPIO 测量了运行时间。
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1; u32Start = CpuTimer0.RegsAddr->TIM.all; CAL_SINCOS (fAmplTest、u16PosTest); u32Laufzeit = u32Start - CpuTimer0.RegsAddr->TIM.all; if (u32MaxLaufzeit < u32Laufzeit) u32MaxLaufzeit = u32Laufzeit; GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
代码在 PWM ISR 内部运行。 此 ISR 被复制到 RAM 中执行。
此致
Rene