PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Thắc mắc công thức tính chu kỳ 1 xung (http://www.picvietnam.com/forum/showthread.php?t=7477)

TheHouse 02-12-2010 09:56 AM

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..?

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)


Múi giờ GMT. Hiện tại là 01:56 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