A menudo usamos microcontroladores para hacer cosas en nuestros robots, pero necesitamos hacer algunos cálculos en decimal. El uso de variables de punto flotante es muy lento, ya que se incluye automáticamente una biblioteca de punto flotante de software (a menos que tenga un microcontrolador de gama alta). Por lo tanto, generalmente usamos aritmética de punto fijo.
Cada vez que hago esto, solo uso un número entero y recuerdo dónde está el lugar decimal. Sin embargo, se debe asegurar que todo sea consistente, especialmente cuando los cálculos involucran variables donde el punto decimal está en un lugar diferente.
He implementado una función de punto fijo atan2, pero debido a que estaba tratando de exprimir hasta la última gota de precisión limitada (16 bits), a menudo cambiaba la definición de dónde está el punto decimal, y cambiaba a medida que lo ajustaba. Además, tendría algunas constantes, como una tabla de cuasi búsqueda, que tienen un punto decimal implícito en alguna parte.
Quiero saber si hay una mejor manera. ¿Existe una biblioteca, o conjunto de macros, que pueda simplificar el uso de variables de punto fijo, facilitando la multiplicación y división entre variables mixtas y permitiendo la declaración de números decimales o expresiones constantes, pero convirtiendo automáticamente a la representación de punto fijo deseada en la compilación ¿hora?