PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 13-11-2011, 10:49 PM   #1
apiker
Đệ 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!
apiker vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-11-2011, 11:44 PM   #2
delta21
Đệ tử 5 túi
 
delta21's Avatar
 
Tham gia ngày: Mar 2010
Bài gửi: 95
:
Send a message via Yahoo to delta21
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......
delta21 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 01:36 AM   #3
DINH THANH SANG
Đệ tử 3 túi
 
Tham gia ngày: Jul 2011
Bài gửi: 55
:
Trích:
Nguyên văn bởi apiker View Post
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!
CHÀO BẠN. theo như ý bạn nói là 1s thì xảy ra ngắt thì bạn dùng chế độ Interrup của time1 nó đếm xung đến khi tràn trong thời gian t ta đặt trước thì nó sẽ xảy ra ngắt.
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
DINH THANH SANG vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 02:04 AM   #4
apiker
Đệ tử 1 túi
 
Tham gia ngày: Jul 2010
Bài gửi: 17
:
Trích:
Nguyên văn bởi delta21 View Post
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.
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
apiker vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 09:33 AM   #5
delta21
Đệ tử 5 túi
 
delta21's Avatar
 
Tham gia ngày: Mar 2010
Bài gửi: 95
:
Send a message via Yahoo to delta21
Smile

Trích:
Nguyên văn bởi apiker View Post
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ỉ?
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......
delta21 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 10:46 PM   #6
apiker
Đệ tử 1 túi
 
Tham gia ngày: Jul 2010
Bài gửi: 17
:
Trích:
Nguyên văn bởi delta21 View Post
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
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?
apiker vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 11:08 PM   #7
delta21
Đệ tử 5 túi
 
delta21's Avatar
 
Tham gia ngày: Mar 2010
Bài gửi: 95
:
Send a message via Yahoo to delta21
Smile

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......
delta21 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2011, 11:30 PM   #8
apiker
Đệ 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é
apiker vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:56 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam