![]() |
|
Tài trợ cho PIC Vietnam |
Cơ cấu chấp hành (Actuator) Động cơ DC, AC, động cơ không chổi than, động cơ không cảm biến... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Nếu bạn khai báo một biến để chứa duty cycle, trình biên dịch sẽ theo kiểu dữ liệu của biến mà xác định giá trị duty cycle là 8-bit hay 16-bit. Nhưng nếu bạn chỉ đưa một giá trị hằng 250 thì trình biên dịch sẽ tự hiểu là giá trị 8-bit (trong khi có thể bạn đang muốn mô tả một giá trị 16-bit). Chú ý là nếu bạn đưa giá trị hằng 520 vào thì trình biên dịch vẫn hiểu rằng đó là một giá trị 16-bit, vì 520 không thể chứa trong 8-bit. Còn cách tính ra số 64 thì rất đơn giản. Nếu giá trị duty cycle là 8-bit, giá trị ứng với duty cycle = 100 % sẽ bằng giá trị thiết lập của timer cộng với 1 (127 + 1 = 128 trong ví dụ ở post #2 của bạn). Do đó duty cycle = 50 % sẽ ứng với giá trị thiết lập = 128/2 = 64. Thêm 2 bit '0' vào LSB của duty cycle có nghĩa là giá trị mà bạn mô tả cho duty cycle sẽ được dịch trái 2 vị trí, do đó nó (giá trị mà bạn mô tả) sẽ được so sánh với thanh ghi TMR2, chứ không còn so sánh với tổ hợp thanh ghi TMR2 và 2 Q-bit. Nói cách khác, độ phân giải duty cycle mà bạn có thể dùng sẽ bằng với độ phân giải của tần số, chứ không còn là 4 lần của độ phân giải đó như bình thường. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 30-05-2009 lúc 05:25 PM. |
|
![]() |
![]() |
|
|