13-11-2011, 10:49 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
Ngắt timer
Xin lỗi e hỏi câu hơi ngu, mong mọi người bỏ qua cho: e chưa hiểu khi dùng chế độ định thời của các bộ timer, ví dụ mình cần định thời gian là 1s thì sẽ ngắt và thực hiện các câu lệnh trong chương trình ngắt, nhưng e ko biết khi nào thì vi điều khiển sẽ bắt đầu tính khoảng thời gian đó, hay là sẽ chọn vị trí nào trong chương trình chính để định thời gian 1s thì sẽ xảy ra ngắt.
Rất mong các pro khai sáng! |
13-11-2011, 11:44 PM | #2 |
Đệ tử 5 túi
|
khi bạn cho timer chạy(tmrXon = 1 ) thì nó bắt đầu tính thời gian từ đó,khi đếm đủ thời gian cài đặt thì sẽ có ngắt.Trong ct bạn pải tính toán để nạp lại timer sau khi thực hiện xong ct ngắt.
__________________
Chỉ sợ thiếu tiền...... |
14-11-2011, 01:36 AM | #3 | |
Đệ tử 3 túi
Tham gia ngày: Jul 2011
Bài gửi: 55
: |
Trích:
chúc ban thành công.
__________________
ĐINH THANH SANG 1990 AN MỸ - CẨM CHÂU - HỘI AN - QUẢNG NAM DĐ: 01684222047 Yahoo ID: thanh_sang_mua_he_mai_xanh@yahoo.com.vn |
|
14-11-2011, 02:04 AM | #4 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
Ra là như thế. Cảm ơn bạn nhiều nhé. Nhưng mà bạn ơi, ví dụ mình dùng Timer0 để định thì, nhưng mình ko thấy có bit timer0on. Như thế là thế nào bạn nhỉ?
thay đổi nội dung bởi: apiker, 14-11-2011 lúc 02:42 AM. Lý do: thêm câu hỏi |
14-11-2011, 09:33 AM | #5 |
Đệ tử 5 túi
|
mình ghi tổng quát là như thế ,biết bạn dùng timer nào đâu,ví dụ với pic 16f887 ,TIMER 0,timer 0 sẽ bắt đầu chạy khi bạn nạp giá trị vào TMR0,timer1 bắt dầu chạy khi TMR1ON =1 ,timer 2 là T2ON =1 .Bạn tham khảo thêm datasheet
__________________
Chỉ sợ thiếu tiền...... |
14-11-2011, 10:46 PM | #6 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
thông thường mình khai báo cấu hình cho các timer trước như chọn bộ chia... rồi mới đến dòng khai báo giá trị ban đầu cho timer, với thứ tự như thế thì giải thích của bạn mình hiểu, nhưng nếu ta lại cho dòng lệnh khai báo giá trị ban đầu lên trước các dòng khai báo cấu hình, theo như bạn nói thì cứ nạp giá trị thì timer bắt đầu đếm mà ko quan tâm đến bộ chia mà mình cài đặt sao?
|
14-11-2011, 11:08 PM | #7 |
Đệ tử 5 túi
|
When TMR0 is written, the increment is inhibited for
two instruction cycles immediately following the write. datasheet 16f887 trang 75. trước giờ mình làm theo hường dẫn trong datasheet,mình chưa thử làm như bạn bao giờ.Bạn thử xem.theo mình nghĩ là nó sẽ chạy ko chính xác,hoặc không chạy.Nếu mà lý luận như bạn thì mình cũng có thể set cho bit tmr1on = 1 trước khi vào thiết lập timer cũng có thể là pic sẽ kiểm tra tất cả các bit cài đặt trước khi kiểm tra bit cho phép chạy!!
__________________
Chỉ sợ thiếu tiền...... |
14-11-2011, 11:30 PM | #8 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
chak là như thế thật. Cảm ơn bạn nhé
|
|
|