Ðăng Nhập

View Full Version : Thắc mắc công thức tính chu kỳ 1 xung


TheHouse
02-12-2010, 09:56 AM
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..?

kiemsi_88
02-12-2010, 11:25 AM
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.

TheHouse
02-12-2010, 12:46 PM
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..

MrAnhKieu
09-12-2010, 03:48 PM
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 ????

anhhuymin
17-03-2011, 12:33 AM
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 (*)

dientuvienthong
21-03-2011, 11:46 AM
setup_timer_1(a,b,c) ;==> t = (4/f)(a)(b+1)