Bạn xem các file đính kèm sau và phần trợ giúp CCS C về set_pwm1_duty(value) sẽ hiểu rỏ hơn về PWM. Bạn mở file adc trong Proteus để mô phỏng, bạn nhấn Button để hiển thị các giá trị trên LCD, thay đổi chiết áp để xem sự thay đổi các giá trị ADC và CCP_1, mở Osciloscope để xem sự thay đổi của xung
Theo tôi giá trị CCP_1 chẳng có ý nghĩa gì, không nên quan tâm nếu đã tính thời gian đúng.
Nếu value là int8, bạn gán value = X thì CCP_1 = Y trong đó :
X / 255 = Y / 65535
Nếu value là int16 ( value phải <= 10 bit) thì
X / 1023 = Y / 65535
Bạn có thể thay đổi cấu hình ADC trong file.h thành 10 bit để xem.
Chúc vui!
|