PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   Khóa chéo giữa các ngắt (http://www.picvietnam.com/forum/showthread.php?t=5592)

success.tl 23-12-2009 06:38 AM

Khóa chéo giữa các ngắt
 
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

Trích:

Nguyên văn bởi namqn (Post 32468)
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

Trích:

Nguyên văn bởi success.tl (Post 32470)
À, 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,


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam