View Single Post
Old 13-01-2007, 10:30 PM   #18
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi minhpic View Post
Mình có thể giải thích thế này, nếu bạn thực hiện một lệnh nào đó ghi vào TMR0 khi mà prescaler đã gán cho TIMER0 thì không làm thay đổi chỉ định này mà chỉ xóa tỷ số đã ghi vào prescaler(ví dụ: bạn đang đặt 1:2 thì sau lệnh ghi vào TMR0 tỷ số này bị xóa, do đó muốn sử dụng bạn phải đặt lại nhưng prescaler vẫn gán cho TIMER0 nếu từ đầu bạn đã gán cho nó)
Không nên hiểu như vậy đâu.

Prescaler là một mạch chia tần số, thực sự chỉ là một bộ đếm xung (thường theo lũy thừa của 2 cho đơn giản phần cứng). Lấy ví dụ, prescaler 1:8 có nghĩa là 8 xung đầu vào thì mới có 1 xung ở đầu ra, tức là tốc độ xung đưa đến tải ở đầu ra của prescaler đã được giảm xuống (hay tần số đã bị chia nhỏ xuống). Người dùng có thể thắc mắc là nó sẽ bắt đầu đếm từ đâu, giả sử nó đếm từ 4 thì chỉ sau 4 xung đầu tiên đã có 1 xung ở ngõ ra của prescaler rồi. Microchip khẳng định bằng đoạn văn bản đó: Khi ghi vào thanh ghi TMR0 ở điều kiện prescaler được gán cho Timer0 thì số đếm của prescaler sẽ được xóa về 0, nhưng việc gán prescaler sẽ không thay đổi (có nghĩa là prescaler vẫn đang được gán cho Timer0). Thiết kế này đảm bảo trong mọi trường hợp bạn đều có tín hiệu ở ngõ ra của prescaler như mong muốn.

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, 14-01-2007 lúc 07:58 PM. Lý do: lỗi typo
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn