PDA

View Full Version : Khóa chéo giữa các ngắt


success.tl
23-12-2009, 06:38 AM
Anh em giúp tui với.
Tui đang sử dụng 2 ngắt: RDA và SSP. tui muốn rằng khi xảy ra ngắt RDA thì cấm ngắt SSP và ngược lại.
Tui viết chương trình như sau:

//----------------------------------------------
#int_rda
void rs232_isr()
{
disable_interrupts(INT_SSP);//Cấm ngắt SSP
......................................//Thực hiện chương trình ngắt RDA
enable_interrupts(INT_SSP);//Kích hoạt ngắt SSP
}
//----------------------------------------------

Khi nạp thử vào PIC thì nó chạy không theo mong muốn, hic!
Vậy thì có thể thực hiện khóa chéo các ngắt như trên được không? Anh em trả lời giúp nha! Thankyou!

namqn
23-12-2009, 08:04 AM
Bạn cho biết đang dùng PIC nào đã. Cơ chế xử lý ngắt của PIC tầm trung và cao cấp (đều là các PIC 8-bit) là khác nhau. Chưa xét đến PIC 16-bit (PIC24H/PIC24F) và PIC 32-bit (PIC32).

Thân,

success.tl
23-12-2009, 08:47 AM
Bạn cho biết đang dùng PIC nào đã. Cơ chế xử lý ngắt của PIC tầm trung và cao cấp (đều là các PIC 8-bit) là khác nhau. Chưa xét đến PIC 16-bit (PIC24H/PIC24F) và PIC 32-bit (PIC32).

Thân,

À, em đang dùng con 877A. Em biết Pic16 không có chế độ ưu tiên ngắt, nên em dùng cách đó. nhưng chưa ổn lắm!

namqn
08-01-2010, 10:59 PM
À, em đang dùng con 877A. Em biết Pic16 không có chế độ ưu tiên ngắt, nên em dùng cách đó. nhưng chưa ổn lắm!
Khi PIC16F877A phục vụ ngắt, bit GIE sẽ tự động bị tắt bởi phần cứng, và sẽ được tự động bật bởi phần cứng khi trở về từ ngắt. Do đó, việc khóa chéo như bạn đã thực hiện có lẽ không cần thiết.

Thân,