PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 28-12-2008, 11:25 AM   #1
binhlt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 19
:
Vài câu hỏi rất quan trọng

Tôi đang viết một chương trình khá phức tạp trên dsPic30F3013 (24K Flash, 2k RAM) hiện nay vì mã lệnh đã khá lớn và thời gian tính toán chưa đạt được mức cho phép nên cần phải tối ưu nhiều từ đó xuất hiện vài vấn đề cần hỏi mong các bạn đã có kinh nghiệm chỉ bảo thêm:

1: Giả sử tôi có 1 chương trình rất đơn giản như sau:

const char B[]={0,1,2,3,4,5,6,7,8,9};
short k;

int main(void)
{
while (1)
{
k++;
}
}
như bạn thấy mảng B chỉ 10 byte nhưng khi kiểm tra lại tôi thấy mảng B chiếm 5 intructions tức là mất 5*3 = 15 byte. Từ đó có thể thấy rằng nếu lưu mảng vào trong bộ nhớ chương trình thì bỏ phí mất 1/3 dung lượng.
Vậy câu hỏi là có cách nào lưu trữ mảng vào bộ nhớ mà không để phí không?

2: Chương trình hiện tại tôi viết hiện đã chiếm 1998 byte RAM như vậy lượng RAM trống còn lại rất ít. Câu hỏi ở đây là lượng RAM đo bằng chương trình đó có thể tin cậy 100% không? Liệu khi chạy thực tế có thể bị tràn bộ nhớ không?

3: Trong chương trình có nhiều đoạn dùng hàm sin, cos, tan, atan, sqrt, các phép nhân, chia các số 32bit. Nếu sử dụng các hàm sin, cos, tan, atan của C thì tốc độ rất chậm, phép chia cho số 16bit thì có các hàm __builtin_ đã rất hay nhưng chia cho các số 32 bit thì phải dùng mẹo để chuyển về 16 bit nhưng thời gian không khá hơn nhiều. Để tăng tốc tôi đã phải viết khá nhiều hàm sử dụng bảng tra nhưng vẫn chưa ưng ý lắm rất mong các bạn đưa lên diễn đàn nhiều thuật toán hay để làm giảm thời gian tính toán. Như vậy cần các thuật toán nhanh (dùng nội suy kết hợp bảng tra) cho các hàm hay dùng như:
- thuật toán cho hàm sin, cos, tan, atan
- thuật toán cho hàm sqrt
Đối với dsPic còn có các hàm Q15, Q16 nhưng giá trị vào bị bó hẹp trong khoảng -1 đến 0.999 có cách nào để dùng các hàm Q15, Q16 cho các giá trị bình thường không?

4: Cuối cùng trong quá trình sử dụng tôi thấy quyển sách "Hackers Delight" có nhiều phương pháp nhằm tăng tốc rất hay xin được giới thiệu với các bạn trang chủ của nó đây http://www.hackersdelight.org/
binhlt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 09:21 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam