ATtiny: tidak ada dukungan untuk perkalian?

9

Benarkah AVR ATtiny tidak memiliki dukungan perangkat keras untuk perkalian? Tampaknya berfungsi dengan baik karena saya melakukan perkalian dalam kode saya. Saya juga memasukkan math.h dan memiliki beberapa perhitungan sin () dan cos (). Apakah saya mengalami penalti 800 siklus besar untuk perhitungan ini, apakah ada yang tahu?

David Högberg
sumber
gunakan tabel pencarian untuk trigonometri, dan interpolasi linier jika Anda menginginkan resolusi yang lebih baik (dengan kesalahan yang dapat ditoleransi)
vicatcu

Jawaban:

12

ATtiny tidak memiliki pengganda perangkat keras, tetapi penggandaan perangkat lunak tidak semahal yang Anda maksudkan. Lihat catatan aplikasi AVR200 dan kode terkait untuk beberapa rutinitas perkalian dan divisi yang dioptimalkan.

Perhitungan sinus dan kosinus dapat dipercepat menggunakan tabel pencarian, secara efektif memperdagangkan ruang memori untuk siklus prosesor. Namun, seperti yang @DaveTweed tunjukkan dengan benar, algoritme yang mendekati sinus dan kosinus dalam perangkat lunak akan mendorong penghitungan siklus mendekati kisaran yang Anda takuti.

Scott Winder
sumber
5
Perkiraan polinomial untuk sin()dan cos()biasanya melibatkan beberapa (3-5) perkalian, ditambah penambahan / pengurangan multiprecision, rentang lipat, dll., Sehingga 800 jam per panggilan fungsi tidak realistis.
Dave Tweed
@ DaveTweed: Terima kasih, bagus. Diedit untuk memperjelas.
Scott Winder