C语言定点数学
C Language Fixed Point Math
熟悉Arduino编程工具,但嵌入式编程经验相对较少。在 Arduino 中使用十进制数字时,我从来没有遇到任何问题,所以当我最近开始使用 TI 的 Launchpad F28069M(TMS320F28069M 芯片)时,我很惊讶我的数学没有产生我预期的结果。在做研究时,我意识到 TI 芯片有一个定点处理器,这可以解释为什么我的小数被截断为 0。(参见简短代码示例)
我的问题如下:
- 我应该如何在我的代码中声明小数?
- 我应该使用 TI 的 IQ 数学吗?
- 为什么我能够在 Arduino 中使用十进制数字声明和执行数学函数而没有任何问题?
我的代码
Uint16 A;
main()
{
A = .25;
}
TI 的 CCS 中表达式 Window 的结果:
Expression Window CCS
尝试使用以下代码:
float A;
main()
{
A = .25;
}
熟悉Arduino编程工具,但嵌入式编程经验相对较少。在 Arduino 中使用十进制数字时,我从来没有遇到任何问题,所以当我最近开始使用 TI 的 Launchpad F28069M(TMS320F28069M 芯片)时,我很惊讶我的数学没有产生我预期的结果。在做研究时,我意识到 TI 芯片有一个定点处理器,这可以解释为什么我的小数被截断为 0。(参见简短代码示例)
我的问题如下:
- 我应该如何在我的代码中声明小数?
- 我应该使用 TI 的 IQ 数学吗?
- 为什么我能够在 Arduino 中使用十进制数字声明和执行数学函数而没有任何问题?
我的代码
Uint16 A;
main()
{
A = .25;
}
TI 的 CCS 中表达式 Window 的结果: Expression Window CCS
尝试使用以下代码:
float A;
main()
{
A = .25;
}