Professional Documents
Culture Documents
Timer - (Cuuduongthancong - Com)
Timer - (Cuuduongthancong - Com)
Chuyên đề II
.c
Vi điều khiển và ứng dụng
ng
co
an
Timer
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Timer with DsPIC
om
.c
ng
co
an
th
o ng
du
u
cu
2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chi tiết
om
.c
ng
co
an
th
o ng
du
u
cu
3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chức năng
om
.c
ng
co
an
th
o ng
du
u
cu
4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Type A timer
om
.c
ng
co
an
th
o ng
du
u
cu
om
Match a value pre-loaded into the PRx register
.c
Timer/Counter increments on the rising edge of
ng
the chosen clock source
co
Resets to zero when count matches value in PRx
an
Sets the interrupt flag bit TxIF
th
ng
Generates an interrupt (if enabled)
o
du
u
cu
6
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
om
Bật tắt LED với chu kỳ ¼ giây, sử dụng Timer1,
prescaler là 256, thời gian đếm là 10000, port D
.c
ng
Giả sử clock là 10MHz. Tương ứng chu kỳ là
co
100ns. Chọn prescaler 1:256, thời gian một chu
an
kỳ là 100*256=25600ns i.e. 25.6µs.
th
T = 10000*25.6µs = 256ms ~ ¼s.
o ng
du
u
cu
7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ Timer1
om
.c
ng
co
an
th
o ng
du
u
cu
8
CuuDuongThanCong.com https://fb.com/tailieudientucntt
16-bit synchronous counter
mode
om
TMR1 tăng tới giá trị đặt trong PR1 register, sau đó TM1 reset
.c
và trở về 0.
Cho phép ngắt T1IF (in the register IFS0)
ng
Muc tiêu là sử dụng Timer1 cho việc đo tần số vào lớn như đo
co
tần số vào UART.
an
Nếu TSIDL (T1CON<13>) bằng 0
th
Hoạt động chế độ IDLE và ngược lại
ng
Prescaler ratio 1:1, external clock TCS=1, TON=1 d (T1CON =
o
du
8006;).
u
9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
om
.c
ng
co
an
th
o ng
du
u
cu
10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Real-Time Clock (RTC)
operation mode
om
.c
ng
co
an
th
o ng
du
u
cu
11
CuuDuongThanCong.com https://fb.com/tailieudientucntt
16-bit asynchronous counter
mode
om
Tương tự như 16-bit synchronous counter mode,
tuy vậy set prescaller lên 1:8,64,256
.c
ng
Ở chế độ này, bộ đếm TMR1 sẽ tăng không đồng
co
bộ với clock ngoài mà giảm 8,64, 256 lần
an
th
o ng
du
u
cu
12
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Gated timer mode
om
Sử dụng để đo độ rộng xung
.c
TMR1 sẽ tăng chừng nào đầu vào T1CK còn ở
ng
mức cao
co
Chế độ này gồm
an
TGATE =1 (T1CON<6>)
internal clock (TCS=0)
th
o ng
du
u
cu
13
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
om
.c
ng
co
an
th
o ng
du
u
cu
14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Type B, C timer
om
Sử dụng để ghép nối với nhau tạo thành 32 bit
.c
timer
ng
Type C có thể dùng làm timer cho A/D
co
an
th
o ng
du
u
cu
15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
32 bit timer
om
.c
ng
co
an
th
o ng
du
u
cu
16
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lưu ý
om
Trong mode timer2/3 module,
.c
T2CON control bits dùng điều khiển
ng
T3CION control bits không sử dụng
co
The timer2 module clock and gate inputs dùng
an
trong chế độ timer2/3 module.
th
Ngắt 32-bit timer xảy ra với T3IF flag và T3IE bit
ng
đặt lên
o
du
u
cu
17
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ
om
.c
ng
co
an
th
o ng
du
u
cu
18
CuuDuongThanCong.com https://fb.com/tailieudientucntt