Geralmente usamos microcontroladores para fazer as coisas em nossos robôs, mas precisamos fazer alguns cálculos em decimal. O uso de variáveis de ponto flutuante é muito lento, porque uma biblioteca de ponto flutuante de software é incluída automaticamente (a menos que você tenha um microcontrolador de última geração). Portanto, geralmente usamos aritmética de ponto fixo.
Sempre que faço isso, apenas uso um número inteiro e lembro onde fica a casa decimal. No entanto, é preciso algum cuidado para garantir que tudo seja consistente, especialmente quando os cálculos envolvem variáveis em que o ponto decimal está em um local diferente.
Eu implementei uma função atan2 de ponto fixo, mas como estava tentando espremer toda última gota de precisão limitada (16 bits), muitas vezes mudava a definição de onde está o ponto decimal e mudava à medida que o aprimorava. Além disso, eu teria algumas constantes, como uma tabela de consulta quase, que possuem um ponto decimal implícito em algum lugar.
Eu quero saber se existe uma maneira melhor. Existe uma biblioteca ou conjunto de macros que pode simplificar o uso de variáveis de ponto fixo, facilitando a multiplicação e a divisão entre variáveis mistas e permitindo a declaração de números decimais ou expressões constantes, mas convertendo automaticamente para a representação de ponto fixo desejada na compilação Tempo?