Thắc mắc công thức tính chu kỳ 1 xung
Mình đang viết đoạn code ngắt timer1 trong 1s, nhưng thắc mắc công thức trong tài liệu như sau:
Time_clock = 1/ (10 MHz / (4*16)) = 6.4 microseconds 16 là bộ chia, còn 4 kia là gì nữa, sao phải chia thêm cho 4..? |
Bạn làm về PIC 16F877A thì đọc phần datasheet của Timer nó có ngay mà.tần số Clock đưa vào bên trong Vi xử lý là Fosc/4.
|
Cám ơn, mình đã hiểu. Ban đầu mình nhìn sơ đồ trong datasheet thì cứ nghĩ là trong con PIC, nếu ko dùng thạch anh thì nó sẽ dùng thạch anh nội bên trong con PIC rồi lấy tần số đó chia cho 4.
Giờ thì mình hiểu là nó sẽ lấy thạch anh mà mình gắn ở mạch thực tế chia 4. Còn đầu kia là tần số từ chân RC0 thì mới ko qua bộ chia 4. Vậy con PIC 16f877a luôn có bộ chia 4 bên trong. Mình hiểu vậy đã đúng chưa, có gì sai sót xin chỉ giáo thêm.. |
Giờ mình dùng thạch anh 20Mhz thì tính như thế nào để có thời gian 1 chu kỳ máy ????
|
Công thức tính chu kì máy: T_instruction = 4 * T_osc (*)
Trong đó: 4 thi như các bạn đã nói ở trên. T_osc= 1/tần số dao động cùa thạch anh Đối với thạch anh 20Mhz, thì chu kì dao đông của thạch anh sẽ là T_osc= 1/ 20.000.000 ---> chu ki máy đối với thạch anh 20Mhz là 200ns theo (*) |
setup_timer_1(a,b,c) ;==> t = (4/f)(a)(b+1)
|
Múi giờ GMT. Hiện tại là 07:57 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam