PDA

View Full Version : Hỏi về mức độ ưu tiên các ngắt trong PIC6F877A?


dvnccbmacbt
12-07-2007, 12:39 AM
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.

namqn
12-07-2007, 12:57 AM
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,