Trích:
Nguyên văn bởi nhanh0112
|
Nếu bạn đọc tài liệu hướng dẫn của CCS C thì có thể thấy họ nói rằng các giá trị duty cycle nằm gọn trong 8-bit (giá trị 52 của bạn thỏa mãn điều này) thì nó sẽ được dịch trái 2 bit để ghi vào các thanh ghi tương ứng. Do đó, code ban đầu của bạn sẽ có giá trị 52 được đặt vào CCPR1L, dẫn đến chân CCP1 luôn luôn có giá trị '1' (vì CCPR1L > (PR2 + 1)).
Code vừa sửa của bạn sẽ tạo duty cycle = 50% nếu bạn dùng set_pwm1_duty(13).
Thân,