View Single Post
Old 21-09-2006, 12:50 PM   #295
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Code:
#include <16F877A.h>
void init_PWM(int16 frequency){

   setup_ccp1(CCP_PWM); // initiate PWM
   PR2 = 20000000/4/frequency - 1; // set PWM period
}
Anh lấy một đoạn chú thích chương trình thôi, vì anh cũng chỉ vừa mở lên và coi lướt qua, chưa xem kỹ nữa. Nhưng anh thấy ở đây em viết 20000000/4/f - 1. Công thức tính thì là như vậy, nhưng em phải nhớ rằng, cứ mỗi một lần thêm một công thức tính, thì máy sẽ phải generate lệnh để tính. Vì vậy, thay vì thực hiện chia, thì em ghi thẳng con số vào 5000000/f chẳng hạn.

Rồi với các con số khác cũng vậy, em tính toán ở đâu đó, rồi ghi thẳng vào.

Về thuật toán tính toán, mọi người xem lại coi có vấn đề gì không nhé.

Anh em chú ý là post thẳng chương trình lên ở dạng code, người khác có thể đọc được ngay, khỏi mất công phải lưu rồi mở lại. hơn nữa, từng đoạn code có thể trực quan sinh động, có thể xem và bình luận được. Như vậy sẽ có lợi hơn nhiều.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn