![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Aug 2005
Bài gửi: 14
: |
Từ Float em nhân nó với 0x8000 được chứ đại ca, còn từ Fract chuyển ngược lại thì dễ rùi.
Mong sớm nhận được support của đại ca. |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
Hai hàm chuyển đổi giữa float và fractional của C30 được viết bằng C, do đó chúng tiêu tốn khá nhiều chu kỳ máy, nhưng nếu chúng được thực hiện chỉ khi khởi tạo các tham số thì cũng không thành vấn đề.
Tôi không nghĩ là nhân số float với 0x8000 sẽ chuyển đổi được float sang fractional (bạn hãy kiểm tra xem 0x8000 là giá trị nào trong định dạng cho số float). Nhưng nếu bạn vẫn muốn chuyển đổi nhanh giữa float và fractional, với điều kiện ràng buộc tương tự như 2 hàm của C30 (float nằm trong giữa -1 và 1, không kể giá trị 1) thì vẫn có thể làm được. Tuy nhiên, bạn phải tìm hiểu định dạng của số float trong 32 bit (gồm 1 bit dấu, 8 bit cho số mũ theo cơ số 2, và 23 bit định trị), khi đó tôi tin là bạn sẽ có thể viết một đoạn chương trình cho phép chuyển đổi giữa float và fractional chỉ mất vài chục chu kỳ máy. Tôi không có thời gian để tìm hiểu kỹ hơn, nên chỉ gợi ý cho bạn như vậy thôi. Nếu bạn thử nghiệm thì nên dùng 2 hàm của C30 để khẳng định là hàm của bạn chạy tốt. Về AN908, người ta đã chuẩn hóa các phương trình ngay từ đầu, chủ yếu dùng dạng fractional trong xử lý, và tôi nghĩ họ cũng có dùng cách chuyển đổi tôi vừa nêu trên, nhưng không viết cụ thể thành một chương trình con, do đó họ có thể thực hiện được như đã khẳng định trong tài liệu. Chúc bạn thành công! Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 16 | 22-08-2012 12:35 AM |