Saya perlu melakukan rotasi (dan lainnya) transformasi dalam aplikasi tertanam, membutuhkan fungsi sin () cos () dan tan (). Saya tahu Anda dapat menggunakan tabel pencarian, dan itulah satu-satunya solusi yang dapat saya temukan saat melakukan penelitian sendiri, tetapi apakah ada pustaka trigonometri titik tetap yang bagus di luar sana?
Saya sedang berpikir untuk menggunakan korteks M3 untuk aplikasi, jadi saya ingin menjauh dari floating point sebanyak mungkin untuk menjaga aplikasi zippy.
Jawaban:
Pendekatan yang baik untuk melakukan trigonometri dalam aplikasi yang disematkan adalah dengan menggunakan pendekatan polinomial ke fungsi yang Anda butuhkan. Kode ini kompak, data terdiri dari beberapa koefisien, dan hanya operasi yang diperlukan adalah bertambah dan tambah / kurangi. Banyak sistem tertanam memiliki pengganda perangkat keras, memberikan kinerja yang baik.
sumber
_Fract
adalah sepotong omong kosong IMHO; Saya benci fakta bahwa itu "standar" oleh komite C. Ini memaksa Anda untuk menggunakan Q15 atau Q31 untuk semuanya, yang tidak masuk akal dalam banyak situasi, dan membuat Anda terdampar tanpa bantuan untuk situasi itu.Apakah Anda menentang menggunakan perpustakaan titik tetap Cortex untuk ini?
dari:
Ini menggunakan tabel pencarian dengan interpolasi kuadrat, tapi cukup cepat. Anda bisa menyesuaikannya dengan interpolasi linier untuk kecepatan lebih cepat tetapi lebih banyak kesalahan.
Perhatikan juga bahwa bahkan Cortex M4 tidak harus memiliki FPU. Saya pernah melihat mereka disebut "M4F" jika mereka melakukannya.
sumber