Увага: немає підтримки для множення?


10

Це правда, що у AVtiny AVR немає апаратної підтримки для множення? Здається, це добре працює, коли я роблю множення в коді. Я також включив math.h і маю пару гріхів () та cos () обчислень. Я зіткнувся з якоюсь величезною штрафом за 800 циклів за ці розрахунки, хтось знає?


використовуйте таблиці пошуку для тригової та лінійної інтерполяції, якщо хочете кращої роздільної здатності (з допустимою помилкою)
vicatcu

Відповіді:


14

ATtiny не має апаратного множника, але примноження програмного забезпечення не настільки дороге, як ви маєте на увазі. Дивіться примітку про додаток AVR200 та пов'язаний з нею код для оптимізованих процедур множення та ділення.

Синусові і косинусні обчислення можна прискорити за допомогою таблиць пошуку, ефективно торгуючи простором пам'яті для процесорних циклів. Однак, як правильно зазначав @DaveTweed, алгоритмічно наближення синусу та косинусу в програмному забезпеченні підштовхне кількість циклів ближче до діапазону, якого ви боїтесь.


6
Поліноміальне наближення для sin()та, cos()як правило, включає декілька (3-5) множин, плюс багатоточність додавання / віднімання, складання діапазону тощо, тому 800 годин на виклик функції нереально.
Дейв Твід

@DaveTweed: Дякую, хороший момент. Відредаговано для уточнення.
Скотт Віндер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.