18-03-2008, 12:55 PM | #18 |
Đệ tử 9 túi
|
Bạn nên đọc kỹ help CCS:
Lệnh set_pwm1_duty(value); dùng xác định duty cho xung PWM trên chân CCP1. Tùy theo kiểu của value mà cách tính khác nhau. - Nếu value là giá trị kiểu int 8bit thì CCS C sẽ dịch trái 2 bit để đủ 10bit Công thức tính: %duty = value/(PR2 +1)*100% - Nếu value là giá trị long int 16bit thì CCS C sẽ bỏ đi 4 bit cao Công thức tính: %duty = (value & 1023)/(4*(PR2 +1))*100% Hai đoạn code sau đều cho giá trị duty 50% trên chân CCP1: Code:
int value = 128; setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_16, 255, 1); set_pwm1_duty(value); Code:
int16 value = 512; setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_16, 255, 1); set_pwm1_duty(value);
__________________
Ngày mai bắt đầu từ ngày hôm nay Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này: http://www.picvietnam.com/forum//showthread.php?t=1263 |
|
|