11-01-2008, 01:45 AM | #6 |
Đệ tử 1 túi
Tham gia ngày: Mar 2006
Bài gửi: 23
: |
Bạn cũng có thể làm như sau:
reset timer về 0, sau đó open timer và cho timer free counting cho đến một giá trị nào đó. Sau đó close timer lại và nhảy ra khỏi vòng lặp. Đây là một cách dùng timer để đo thời gian một chu kỳ xung (đỡ phải dùng interrupt gì chi cho mệt). - 1 timer có thể đếm từ 0 cho đến 2^8 (255 count) hay 2^16 (65535 count) (tùy theo bạn chọn cho timer đó là mode 8 bit hay 16 bit) - Timer còn tùy thuộc vào tốc độ của thạch anh. VD: 8Mhz (crystal) --(VDK)--> Fosc = 8/4 = 2 MHz <=> T = 1/F = 0.5us => 1 instruction cycle=0.5us. 1count=0.5us => 255count= 127.5us (8 bit) hoặc là 32768us (16 bit). Sau khi timer đếm hết bao nhiêu đó count thì nó sẽ quay lại là 0. |
|
|