PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-12-2009, 10:59 AM   #1
pk178
Đệ tử 5 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 100
:
Ngắt on-change của PIC16F887

Chào các bác !!!

Các bác cho em hỏi về ngắt on change của con 16F887, em xem trong datasheet thì thấy có nói là tất cả các chân của PORTB đều có thể cấu hình làm ngắt on-change :

"All of the PORTB pins are individually configurable as an interrupt-on-change pin. Control bits IOCB<7:0> enable or disable the interrupt function for each pin" - Trang 52

Em cũng mở file 16F887.h của CCS, cũng thấy mình có thể cấu hình tất cả các chân của PORTB làm ngắt on-change, nhưng không hiểu sao em làm lại không được, chỉ có thể làm ngắt on change đối với các chân từ RB4 đến RB7 thôi.

Mong các bác giải thích giúp em với ạ ! Thanks các bác nhiều !
pk178 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-02-2011, 10:30 PM   #2
khangspkt
Đệ tử 1 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 14
:
Trích:
Nguyên văn bởi pk178 View Post
Chào các bác !!!

Các bác cho em hỏi về ngắt on change của con 16F887, em xem trong datasheet thì thấy có nói là tất cả các chân của PORTB đều có thể cấu hình làm ngắt on-change :

"All of the PORTB pins are individually configurable as an interrupt-on-change pin. Control bits IOCB<7:0> enable or disable the interrupt function for each pin" - Trang 52

Em cũng mở file 16F887.h của CCS, cũng thấy mình có thể cấu hình tất cả các chân của PORTB làm ngắt on-change, nhưng không hiểu sao em làm lại không được, chỉ có thể làm ngắt on change đối với các chân từ RB4 đến RB7 thôi.

Mong các bác giải thích giúp em với ạ ! Thanks các bác nhiều !
Trong datasheet có mô tả khi sử dụng chức năng này, khi khở tạo bạn nên cấu hình digital cho các chân RB (ANSEL=ANSELH=0) và enable chức năng interrupt-on-change (IOCB=0xFF). khi đó mình có thể sử dụng chức năng interrup-on-change.
khangspkt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-04-2011, 05:04 PM   #3
hangocminh1989
Đệ tử 6 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 132
:
Trích:
Nguyên văn bởi khangspkt View Post
Trong datasheet có mô tả khi sử dụng chức năng này, khi khở tạo bạn nên cấu hình digital cho các chân RB (ANSEL=ANSELH=0) và enable chức năng interrupt-on-change (IOCB=0xFF). khi đó mình có thể sử dụng chức năng interrup-on-change.
em hỏi một câu hơi ngu, mong bác thông cảm nói cho em biết, cấu hình digital cho các chân rb của pic 16f887 làm như thế nào bác?
hangocminh1989 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 12:09 AM   #4
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
Các bạn cho mình hỏi mình viết chương trình bằng CCS ,sử dụng 2 ngắt.

Giả sử trong khi xử lý trong chương trình ngắt 1,thì ngắt 2 xảy ra...vậy sau khi thoát ngắt 1 ,nó có nhảy vào ngắt 2 hay không..hay là nó trở về chỗ bắt đầu xảy ra ngắt 1.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 12:42 AM   #5
tanbka
Đệ tử 5 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
:
Trích:
Nguyên văn bởi stupid11 View Post
Các bạn cho mình hỏi mình viết chương trình bằng CCS ,sử dụng 2 ngắt.

Giả sử trong khi xử lý trong chương trình ngắt 1,thì ngắt 2 xảy ra...vậy sau khi thoát ngắt 1 ,nó có nhảy vào ngắt 2 hay không..hay là nó trở về chỗ bắt đầu xảy ra ngắt 1.
Oh mình cũng không rõ tại thời điểm này con trỏ chương trình được nạp luôn địa chỉ của ngắt tiếp theo hay là nạp lại vị trí chương trình bị ngắt trước đó, sau đó mới nạp lại địa chỉ của ngắt tiếp theo. Tuy nhiên có điều chắc chắn là điều đó không ảnh hưởng đến chương trình của bạn, bới vì khi thực hiện xong hết các ngắt, CPU mới thực hiện lệnh tiếp theo.
tanbka vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 12:51 AM   #6
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
Trích:
Nguyên văn bởi tanbka View Post
Oh mình cũng không rõ tại thời điểm này con trỏ chương trình được nạp luôn địa chỉ của ngắt tiếp theo hay là nạp lại vị trí chương trình bị ngắt trước đó, sau đó mới nạp lại địa chỉ của ngắt tiếp theo. Tuy nhiên có điều chắc chắn là điều đó không ảnh hưởng đến chương trình của bạn, bới vì khi thực hiện xong hết các ngắt, CPU mới thực hiện lệnh tiếp theo.
Nhưng bạn ơi..mình sử dụng ngắt nhận RDA với ngắt Timer 1...giả sử chương trình đang xử lý trong ngắt timer 1 mà xảy ra ngắt nhận RDA..nếu mà sau khi thoát ngắt Timer 1 nó mà không vào ngắt nhận RDA thì sẽ bị mất dữ liệu..
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 11:47 AM   #7
tanbka
Đệ tử 5 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
:
Trích:
Nguyên văn bởi stupid11 View Post
Nhưng bạn ơi..mình sử dụng ngắt nhận RDA với ngắt Timer 1...giả sử chương trình đang xử lý trong ngắt timer 1 mà xảy ra ngắt nhận RDA..nếu mà sau khi thoát ngắt Timer 1 nó mà không vào ngắt nhận RDA thì sẽ bị mất dữ liệu..
Bạn yên tâm, chắc chắn sau khi thoát ngắt T1 nó sẽ nhảy vào ngắt RDA, chương trình chính sẽ không được thực hiện gì trước khi thực hiện hết các ngắt.
tanbka vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 01:39 PM   #8
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
Trích:
Nguyên văn bởi tanbka View Post
Bạn yên tâm, chắc chắn sau khi thoát ngắt T1 nó sẽ nhảy vào ngắt RDA, chương trình chính sẽ không được thực hiện gì trước khi thực hiện hết các ngắt.
Nếu bạn đã quả quyết như vậy thì mình yên tâm rồi..cảm ơn bạn nhiều nhé.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bà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à 10:15 PM.


Đượ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