thắc mắc về timer ???

tungbk

Cố Vấn CLB
Staff member
Cảm ơn bạn đã đặt các câu hỏi rất hay :)Mình trả lời câu nào mình biết còn lại mọi người góp ý thêm
+Bộ "Tsyn" có tác dụng đồng bộ lại 2 xung clock từ thạch anh và xung clock sau khi qua bộ mux .

+"The prescaler is not readable or writable. When assigned to the Timer0 module, all instructions writing to the TMR0 register will clear the prescaler." Ở đây là bộ prescaler 8 bit mà xung clock đi qua ;phân biệt với PSA ,PS2,PS1,PS0 là các bit set up thông số cho bộ prescaler .

+LP optional : "LP – 32 kHz Low-Power Crystal mode " là nguồn dao động bằng thạch anh 32Khz .Bạn xem lại sơ đồ timer1 sẽ thấy có thể sử dụng 3 nguồn clock cho timer1 từ t/anh 4M ,từ chân RC0 hoặc là dao động đưa vào 2 chân RC0&RC1 .Khác với Timer0 chỉ có 2 nguồn là T/anh 4Mhz và chân RA4

+Bạn xem cái Note "The oscillator requires a start-up and stabilization time before use. Thus,T1OSCEN should be set and a suitable delay observed prior to enabling Timer1." 2 chân RC0 và RC1 ngoài chức năng cấp xung cho timer1 còn là chân GPIO và chức năng khác .Nên khi setup cho nó là cấp clock cho timer1 cần phải delay 1 khoảng thời gian cho clock ổn định thì timer mới hoạt động đúng.
Buồn ngủ quá còn gì các bạn góp ý !!!
 

2death

Cố Vấn CLB
Staff member
Bạn Tùng trả lời đúng rồi đó, chị bu vô nói thêm vài ý cho vui :D

3/-Với timer1, em muốn hỏi “Optional LP oscillator “ là gì?
Đúng như Tùng nói, LP = Lowpower, bộ dao động 32.768Khz --> tốc độ thấp, thấp thì tiêu hao ít năng lượng, nên gọi là LP [bình thường PIC chạy ở hàng MHz, trong 1 số chế độ tiết kiệm năng lượng có thể chạy ở tốc độ thấp hơn]
Ý nó là, Timer1 có thể tuỳ chọn mode LP (32.768Khz) hoặc các mode có tần số cao hơn.


Delay để khởi động timer1, nhưng em chưa hình dung rõ về mục đích của việc làm này
Nó ghi thế có nghĩa là, bộ Timer1 này cần chờ phần cứng khởi động và ổn định. Sau lệnh khởi tạo timer1, trong code mình phải cho nó delay 1 chút (delay = NOP, NOP, NOP, ... tức là MCU không làm gì trong thời gian đó, nó ngồi không chờ phần cứng Timer1 khởi động), sau khoảng delay đó chương trình mới chạy tiếp (chạy dòng code tiếp theo)
 

friendly_boy

Trứng gà
Em muốn hỏi rõ thêm về chỗ mà a.Tùng giải thích ở trên:
1/-Theo như trong hình vẽ thì bộ Prescaler ở phía trước bộ mux PS<2:0>, như vậy thiết lập các bit PS<2:0> là thiết lập cho bộ mux này ! Vậy còn bộ Prescaler có chưc năng gì ? và mình có tác động đến các thiết lập của nó được hay không ?
2/--Trong đoạn trên có đề cập đến readable và writable, vậy read ở đây là read cái gì ? và write ở đây là write cái gì ?
Ngoài ra còn “clear prescaler” là clear cái gì ?
:)
 

tungbk

Cố Vấn CLB
Staff member
Em muốn hỏi rõ thêm về chỗ mà a.Tùng giải thích ở trên:
1/-Theo như trong hình vẽ thì bộ Prescaler ở phía trước bộ mux PS<2:0>, như vậy thiết lập các bit PS<2:0> là thiết lập cho bộ mux này ! Vậy còn bộ Prescaler có chưc năng gì ? và mình có tác động đến các thiết lập của nó được hay không ?
2/--Trong đoạn trên có đề cập đến readable và writable, vậy read ở đây là read cái gì ? và write ở đây là write cái gì ?
Ngoài ra còn “clear prescaler” là clear cái gì ?
:)
Thanh ghi Prescaler 8 bit cùng với thanh ghi TMR0 tạo thành bộ đếm nối tiếp .Nếu dùng riêng TMR0 lượt đếm tối đa là 256; thêm 1 bộ prescaler 8 bit nữa sẽ nhân lượt đếm lên 256 lần.
Bạn xem hoạt động của nó giống như TMR0 chỉ khác là TMR0 khi tràn sẽ set flag còn Prescaler khi tràn sẽ tạo 1 clock.
Thanh ghi TMR0 có thể read/write trực tiếp 8 bit còn thanh ghi Prescaler chỉ được "write" thông qua 4 bit PSA,PS<2:0> với hệ số qui đổi 1:2,1:4,1:8... như trong datasheet. Readable,Writable hay clear prescaler chính là can thiệp vào giá trị thanh ghi prescaler 8 bit. Phân biệt với PSA,PS<2:0> là các bit set up giá trị bộ prescaler này.
 
Top