Seringkali kita menggunakan mikrokontroler untuk melakukan hal-hal dalam robot kita, tetapi perlu membuat beberapa perhitungan dalam desimal. Menggunakan variabel floating point sangat lambat, karena perpustakaan floating point perangkat lunak secara otomatis disertakan (kecuali Anda memiliki mikrokontroler high-end). Oleh karena itu, kami biasanya menggunakan aritmatika titik tetap.
Setiap kali saya melakukan ini, saya hanya menggunakan bilangan bulat, dan ingat di mana tempat desimalnya. Namun, perlu dipastikan bahwa semuanya konsisten, terutama ketika perhitungan melibatkan variabel di mana titik desimal berada di tempat yang berbeda.
Saya telah menerapkan fungsi atan2 titik tetap, tetapi karena saya mencoba memeras setiap tetes terakhir dengan presisi terbatas (16 bit), saya sering mengubah definisi di mana titik desimal berada, dan itu akan berubah ketika saya mengubahnya. Selain itu, saya akan memiliki beberapa konstanta, sebagai tabel kuasi, yang memiliki titik desimal tersirat di suatu tempat.
Saya ingin tahu apakah ada cara yang lebih baik. Apakah ada perpustakaan, atau kumpulan makro, yang dapat menyederhanakan penggunaan variabel titik tetap, membuat perkalian dan pembagian antara variabel campuran lebih mudah, dan memungkinkan deklarasi angka desimal atau ekspresi konstan, tetapi secara otomatis mengkonversi ke representasi titik tetap yang diinginkan pada saat kompilasi waktu?