View Single Post
Old 17-05-2010, 10:53 PM   #1
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi bien_van_khat View Post
Bạn dùng hàm delay thì CPU sẽ dừng mãi trong hàm delay nên ko thể phục vụ công việc quét phím.

Để giải quyết bạn cần cách tính thời gian khác sử dụng timer. VD: Cấu hình timer1 tràn sau 50ms, cứ mỗi lần timer1 tràn bạn tăng biến cnt lên 1, như vậy khi cnt = 3600 x 20 tức là đã trải qua 1 giờ.

Trong thời gian chờ timer1 tràn, bạn vẫn kiểm tra phím bấm liên tục.
các bác cho em hỏi thêm.
giả sử ta có 1 nút bấm để điều chỉnh số giờ đặt.
nếu đặt 1h thì cnt = 3600x20,sau đó xảy ra ngắt và ta xoá cnt=0.
nếu ta đặt 2h thì cnt = 3600x2x20, nhưng khi đến 1h thì nó đã xảy ra ngắt và xoá cnt =0 rùi.
vậy ko thể đặt được 1h,2h..9h.vì cứ 1h nó lại ngắt và cnt=0,đếm lạ từ đầu.
thứ 2 các bác xem hộ em khởi tạo cái time1 có đúng ko?mà sao em ko thấy nó hoạt động.
GIE=1;
PIE1=1;
TMR1IE=1;
TMR1IF=1;
TMR1CS=0;
T1SYNC = 1;
T1OSCEN = 1;
T1CKPS1=1;
T1CKPS0=1;
TMR1ON=1;
muốn nạp giá trị vào thanh ghi 16 bit TMR1H,TMR1L như thế nào hả các bác.
giả sử em muốn nạp giá trị 3035 vào thanh ghi 16 bít đó, thì phải ghi như thế nào?
cám ơn các bác nhiều!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn