View Single Post
Old 15-05-2009, 05:18 PM   #9
tungnh
Đệ tử 5 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 94
:
Trích:
Nguyên văn bởi cuongthinh View Post
Anh tungnh cũng làm PFC số rồi ạ, anh xem với cái sơ đồ như trên chương trình của em có lỗi gì không sao em test thử mà không thấy có xung ra ở chân PWM. sau một hồi mày mò, xem xét em vẫn chưa tìm được lỗi sai ở đâu, mong anh và các cao thủ ra tay giúp đỡ!
Tôi góp ý cho bạn về code bạn viết nhé:
Thứ nhất : chắc bạn chưa hiểu về PI. Bởi hệ thống PI phải là liên tục , mà trong đoạn code của bạn không để hàm điều khiển trong vòng while hay ngắt. Tôi khuyên bạn nên thực hiện khâu PI trong ngắt ADC.
Thứ 2
Không ai người ta cấu hình ADC nhiều lần như bạn,Tôi gợi ý cho bạn thế này : thực chất với bài toán này không phải bạn lấy mẫu với tần số khác nhau với mỗi chân ANx mà lấy kết quả việc chuyển đối AD với mỗi chân là không đồng thới. Để làm điều này bạn thực hiện quét kênh với mỗi các ANx khác nhau.
ví dụ bạn chọn kênh 0 gồm các chân AN3,AN4 và AN0,AN1,AN2, ở kênh 1,2,3 chẳng hạn,kênh 0 là kênh quét, đầu tiên là cho AN3 quét trước . sau đó bạn cấu hình cho việc ngắt sau số lần lấy mẫu và chuyển đổi ví dụ ADCON2bits.SMPI =1 ( ngắt sau lấn sample/convert thứ hai) . Ta chọn AN3 quét trước ,sau lần sample/convert đầu tiến ta có kết quả của AN3,AN0,AN1,AN2 lần lượt là ADCBUF0,1,2,3 và sau lần sample/convert thứ hai , tức AN4 quét kết quả của AN4,AN0,AN1,AN2 là ADCBUF4,5,6,7. Như vậy là các chân AN0,1,2 có 2 kết quả trong khi đó AN3,4 chỉ có 1. Bạn có thể tham khảo ở dspic30f_reference_manual để hiểu .
tungnh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn