C语言定点数学

C Language Fixed Point Math

熟悉Arduino编程工具,但嵌入式编程经验相对较少。在 Arduino 中使用十进制数字时,我从来没有遇到任何问题,所以当我最近开始使用 TI 的 Launchpad F28069M(TMS320F28069M 芯片)时,我很惊讶我的数学没有产生我预期的结果。在做研究时,我意识到 TI 芯片有一个定点处理器,这可以解释为什么我的小数被截断为 0。(参见简短代码示例)

我的问题如下:

  1. 我应该如何在我的代码中声明小数?
  2. 我应该使用 TI 的 IQ 数学吗?
  3. 为什么我能够在 Arduino 中使用十进制数字声明和执行数学函数而没有任何问题?

我的代码

Uint16 A;

main()
{
    A = .25;
}

TI 的 CCS 中表达式 Window 的结果: Expression Window CCS

尝试使用以下代码:

float A;

main()
{
    A = .25;
}