Thông thường chúng ta sử dụng vi điều khiển để làm mọi thứ trong robot của mình, nhưng cần thực hiện một số tính toán theo số thập phân. Sử dụng các biến dấu phẩy động rất chậm, bởi vì một thư viện dấu phẩy động phần mềm được tự động đưa vào (trừ khi bạn có một bộ vi điều khiển cao cấp). Do đó, chúng tôi thường sử dụng số học điểm cố định.
Bất cứ khi nào tôi làm điều này, tôi chỉ cần sử dụng một số nguyên và nhớ vị trí thập phân ở đâu. Tuy nhiên, cần phải cẩn thận để đảm bảo rằng mọi thứ đều nhất quán, đặc biệt khi các phép tính liên quan đến các biến trong đó dấu thập phân ở một vị trí khác.
Tôi đã triển khai hàm atan2 điểm cố định, nhưng vì tôi đang cố gắng nén từng giọt chính xác giới hạn cuối cùng (16 bit), tôi thường sẽ thay đổi định nghĩa về điểm thập phân ở đâu và nó sẽ thay đổi khi tôi điều chỉnh nó. Ngoài ra, tôi sẽ có một số hằng số, như một bảng tra cứu gần đúng, bản thân chúng có một dấu thập phân ngụ ý ở đâu đó.
Tôi muốn biết nếu có một cách tốt hơn. Có thư viện hoặc tập hợp các macro có thể đơn giản hóa việc sử dụng các biến điểm cố định, giúp nhân và chia giữa các biến hỗn hợp dễ dàng hơn và cho phép khai báo các số thập phân hoặc biểu thức không đổi, nhưng tự động chuyển đổi sang biểu diễn điểm cố định mong muốn khi biên dịch thời gian?