View Single Post
Old 11-05-2009, 07:35 PM   #42
conglong
Đệ tử 4 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 68
:
Trích:
Nguyên văn bởi Hiepnv101 View Post
void Init_TMR1(void)
{
TMR1 = 0; //Xoa so dem trong TMR1
PR1 = 0x7A12; //Nguong tran la 1 giay tuong ung voi clock = 32 MHz
_T1IF = 0; //Xoa co ngat cua Timer 1
T1CON = 0x8030; //Dung fcy lam clock, prescale = 1:256
_T1IE = 1; //Cho phep ngat khi Timer 1 tran
}
Theo em nghĩ là bộ đếm sẽ đếm giá trị từ PR1 đến giá trị 65535, khi vượt qua giá trị này sẽ tạo ngắt Timer1. Anh Nam đặt giá trị 7A12 vào PR1 liệu đã tạo ra ngắt đúng 1giây không ?
Không phải đâu ban, Timer sẽ đếm từ 0 cho tới giá trị PRx, giá tri của bộ đếm Timer sẽ lưu vào TMRx ,(x ở đây là chỉ số timer x=1 ,2..) và khi TMRx = PRx thì ngắt Timer sẽ được gọi (nếu bạn set bit _TxIE ), đồng thời reset giá trị trong thanh ghi TMRx về zero,và lặp lại công việc như trên mãi.
Trân trọng!
à mà dạo này Picvietnam thấy sa sút qua thầy Nam ơi !
__________________
Không có gì là Không thể, chỉ một điều Không thể khi bạn nghĩ nó Không thể !.
Bạn có thể nếu bạn tin bạn có thể !.
conglong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn