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.
主题中讨论的其他器件:C2000WARE
这篇文章介绍了有关 C2000 IQMath 库的一些常见问题。 C2000Ware 软件包中包含该库的完整文档记录。
问:如何将 IQmath 项目更改为 C28x+FPU 的原生浮点项目?
将 IQmath 应用转换为浮点时,我们发现了以下提示和技巧列表:
编译器版本
FastRTS 支持库 (RTS)
您的项目中包括两个 RTS 库:
修改 MATH_TYPE
连接到寄存器
//// 示例:// 从浮点转换为 IQ15// // 如果 MATH_TYPE == IQ_MATH// 使用 IQmath 转换函数 // if MATH_TYPE == IQ_MATHPwmReg = (int16)_IQtoIQ15(Var1);// // 如果 MATH_TYPE == FLOAT_MATH // 乘以 2^15 = 32768.0 // else // MATH_TYPE 为 FLOAT_MATHPwmReg = (int16)(32768.0*Var1);endif
除以一个常数
// // 这将使用 RTS 库中的除法例程除以常数 // AdcVal 为 float32 类型 // DEFINE ADC_SCALE 4096.0...AdcVal = AdcMirror.ADCRESULT0/ADC_SCALE;// // 首选解: // 这将执行乘法,而不执行除法 // DEFINE ADC_SCALE 1/4096.0......AdcVal = AdcMirror.ADCRESULT0* ADC_SCALE;
转换为乘以或除以 2 的倍数
固有编译器
long __qmpy32(long src32a, long src32b, int q); long __qmpy32by16(long src32, int src16, int q);
问:我收到错误消息,指明库与 --float_support=fpu32 构建选项不兼容。我可以做什么?
问:我想在 C28x+FPU 器件上混合 IQmath 和浮点运算。我可以这么做吗?
问:如果我使用 IQmath_F32.lib,它是否会执行原生浮点运算?