1. Bạn đã khai báo mảng FIRpre_emphasis[] ở trong RAM, xem mục 4 phía dưới.
2. Tôi định dùng cụm từ 'chỉnh biên' khi viết tutorial, nhưng nghĩ đi nghĩ lại đã dùng cụm từ 'canh lề' cho nó bình dân hơn. Bạn hãy tưởng tượng RAM được chia thành từng khối với kích thước là một lũy thừa của 2. Việc truy cập bộ nhớ sẽ hiệu quả hơn nếu chúng ta cấp phát các vùng nhớ nằm đúng ở đầu các khối nhớ đó. Thuộc tính aligned giúp chúng ta làm việc đó.
3. Việc đặt các mảng inputsignal[] và outputsignal[] của bạn vào vùng nhớ nào, khi bạn không mô tả tường minh thông tin này, còn tùy thuộc vào kiểu bộ nhớ mà bạn chọn khi biên dịch chương trình. Bạn xem thêm mục 4.6 trong tài liệu 'MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs User's Guide' (DS51284H).
4. Từ khóa đó là const.
5. Việc cấp phát vùng nhớ X hay Y cho dữ liệu được dùng với thư viện DSP do người dùng thực hiện. Bạn đọc thêm mục 'Data Memory Usage' trong tập tin 'DSP Library.htm', nằm trong thư mục con 'docs\dsp_lib' của thư mục cài đặt MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs.
6. Cũng trong thư mục đã đề cập ở mục 5, bạn có thể tìm thấy tập tin 'DSP_Filter_Functions_Help.htm', mô tả các hàm DSP liên quan đến lọc tín hiệu. Bạn có thể thấy rằng giá trị trả về của hàm FIR là một con trỏ đến mảng dữ liệu đích.
Hơn nữa, hàm FIRDelayInit() cần đối số là một con trỏ đến một cấu trúc có kiểu FIRStruct. Code của bạn đã truyền một con trỏ đến một mảng có 2 phần tử, do đó có thể có những hành vi không lường trước được.
Thân,
|