View Single Post
Old 02-05-2019, 01:34 PM   #1
VietNguyen93
Nhập môn đệ tử
 
Tham gia ngày: May 2019
Bài gửi: 1
:
Question _Q15 fixed point dấu chấm tĩnh

Chào các bạn, mình mới chuyển qua lập trình dspic, cụ thể là con dspic33EP512MU810.
Mình đang muốn điều khiển PFC cho bộ boost với tầng số đóng cắt là 100KHz. giải thuật điều khiển của mình chạy ở 50KHz với 2 vòng PID. Như vậy chương tình mình có 20us để tính toán toàn bộ. mình cấu hình dspic ở Fcy=70Mhz nên một cycle là 14.28ns
Vấn đề của mình là floating point thì dspic tính rất lâu nên mình chuyển qua fixed point vì nghỉ nó cũng giống int nhưng mình thấy nó vẫn khá lâu. kết quả mình đo cụ thể như sau:

integer:
+ 28ns
* 28ns
/ 250ns

Floating point (float)
+ 2.5us
* 2.5us
/ 6.2us

fixed point (Q15) libq.h
+ _Q16add 300ns
* _Q16mac 1.2us
/ _Q16div 8us

như vậy với phép cộng và phép nhân, _Q16 tính toán có nhanh hơn được một chút nhưng vẫn rất chậm. Mình nghe nói là dspic hổ trợ dsp có thể thực hiện phép nhân trong 1 cycle. nhưng mà mình không biết làm sao để thực hiện được.
Xin các tiền bối đi trước giúp đỡ mình nhé. mình xin cảm ơn nhiều
VietNguyen93 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn