View Single Post
Old 12-07-2007, 12:57 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi dvnccbmacbt View Post
Các bác cho em hỏi. Trong PIC có ưu tiên các ngắt không? Em ví dụ như khi đang ngắt bằng timer1( chế độ định thời) thì có ngắt ngoài xảy ra. Vậy PIC xử lý thế nào? Mong các bác chỉ giáo. Cảm ơn các bác nhiều.
Các PIC dòng tầm trung (lõi 14-bit) như PIC16F877A không có nhiều mức ưu tiên ngắt, nghĩa là không có ưu tiên gì cả. Khi xử lý ngắt, bạn sẽ tự quyết định mức độ ưu tiên bằng cách viết code thích hợp.

Theo tài liệu của Microchip (datasheet của PIC16F877A), khi bit GIE được bật và cờ ngắt (của một ngắt đang được phép) chuyển lên mức cao, PIC sẽ bị ngắt ngay lập tức. Cách xử lý của bạn trong code xử lý ngắt là, khi bạn muốn cho phép một ngắt nào đó xảy ra khi đang xử lý một ngắt khác, bạn vẫn để bit GIE là bật, ngược lại bạn xóa bit GIE khi xử lý ngắt sẽ có nghĩa là ngắt đang được bạn xử lý có độ ưu tiên cao nhất. Thứ tự của các đoạn code xử lý các ngắt khác nhau cũng mang ý nghĩa ưu tiên. Bạn tự suy luận thêm nhé.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn