ATtiny: không hỗ trợ nhân?


9

Có đúng là các ATtiny AVR không hỗ trợ phần cứng cho phép nhân không? Nó dường như hoạt động tốt khi tôi thực hiện phép nhân trong mã của mình. Tôi cũng đã bao gồm math.h và có một vài phép tính sin () và cos (). Tôi có đang chạy vào một số hình phạt 800 chu kỳ khổng lồ cho những tính toán này không, có ai biết không?


sử dụng bảng tra cứu cho trig và nội suy tuyến tính nếu bạn muốn độ phân giải tốt hơn (với sai số có thể chấp nhận được)
Abbeyatcu

Câu trả lời:


12

ATtiny không có hệ số nhân phần cứng, nhưng nhân phần mềm không quá đắt như bạn ngụ ý. Xem ghi chú ứng dụng AVR200mã liên quan để biết một số thói quen nhân và chia được tối ưu hóa.

Tính toán sin và cos có thể được tăng tốc bằng cách sử dụng bảng tra cứu, giao dịch không gian bộ nhớ hiệu quả cho các chu kỳ của bộ xử lý. Tuy nhiên, như @DaveTweed đã chỉ ra một cách chính xác, thuật toán xấp xỉ sin và cosine trong phần mềm sẽ đẩy chu kỳ đếm lên gần hơn phạm vi mà bạn sợ.


5
Xấp xỉ đa thức cho sin()cos()thường liên quan đến một số phép nhân (3-5), cộng với phép cộng / trừ đa bội, gấp phạm vi, v.v., vì vậy 800 đồng hồ trên mỗi lệnh gọi hàm không phải là không thực tế.
Dave Tweed

@DaveTweed: Cảm ơn bạn, điểm tốt. Chỉnh sửa để làm rõ.
Scott Winder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.