ATtiny: ไม่รองรับการคูณ


10

เป็นความจริงหรือไม่ที่ ATtiny AVRs ไม่รองรับฮาร์ดแวร์สำหรับการคูณ? ดูเหมือนว่าจะทำงานได้ดีเมื่อฉันคูณในรหัสของฉัน ฉันได้รวม math.h และมีการคำนวณบาปสองสามข้อและ cos () ฉันมีบทลงโทษ 800 รอบขนาดใหญ่สำหรับการคำนวณเหล่านี้ไม่มีใครรู้หรือไม่?


ใช้ค้นหาตารางสำหรับหนุนและสอดแทรกเชิงเส้นถ้าคุณต้องการความละเอียดที่ดีกว่า (มีข้อผิดพลาดพอประมาณ)
vicatcu

คำตอบ:


14

ATtiny ไม่มีตัวคูณฮาร์ดแวร์ แต่การคูณซอฟต์แวร์นั้นไม่แพงเท่าที่คุณบอก ดูบันทึกย่อของแอปพลิเคชัน AVR200และรหัสที่เกี่ยวข้องสำหรับการเพิ่มประสิทธิภาพการคูณและการหารบางอย่าง

การคำนวณไซน์และโคไซน์สามารถเร่งได้โดยใช้ตารางการค้นหาการซื้อขายพื้นที่หน่วยความจำสำหรับวงจรประมวลผล อย่างไรก็ตามในขณะที่ @DaveTweed ชี้ให้เห็นอย่างถูกต้องอัลกอริธึมที่ประมาณไซน์และโคไซน์ในซอฟแวร์จะทำให้วงจรนับใกล้เคียงกับช่วงที่คุณกลัว


6
การประมาณพหุนามสำหรับsin()และcos()โดยทั่วไปจะเกี่ยวข้องกับการคูณหลาย (3-5) บวกการเพิ่มการคูณ / การลบการพับช่วง ฯลฯ ดังนั้น 800 นาฬิกาต่อการเรียกใช้ฟังก์ชันไม่ได้ไม่สมจริง
Dave Tweed

@DaveTweed: ขอบคุณจุดดี แก้ไขเพื่อชี้แจง
Scott Winder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.