View Single Post
Old 30-09-2008, 05:05 PM   #4
mbk
Nhập môn đệ tử
 
mbk's Avatar
 
Tham gia ngày: Oct 2007
Bài gửi: 9
:
Smile

Tìm trên dientuvietnam.net thấy có bài nói về cái này của bác CHIBANG nhưng đọc mà vẫn chưa hiểu:
http://dientuvietnam.net/forums/show...p?t=831&page=3
Cho 3 ngắt 1,2,3; làm thế nào để nếu đang thực hiện ngắt i mà có ngắt j <i xẩy ra thì phải phục vụ ngắt j ngay, CHIBANG cho đáp án là:
Trong hàm ngắt, viết như sau:
Ngắt_1()
{
//Chèn mã lệnh: disable ngắt 1,2,3 tại đây
GIE=1;
//Chèn mã lệnh trình phục vụ ngắt 1
}

Ngắt_2()
{
//Chèn mã lệnh: disable ngắt 2,3 tại đây
GIE=1;
//Chèn mã lệnh trình phục vụ ngắt 2
}

Ngắt_3()
{
//Chèn mã lệnh: disable ngắt 3 tại đây
GIE=1;
//Chèn mã lệnh trình phục vụ ngắt 3
}

Như ở trong ngắt 1, đầu tiên cấm ngắt 1,2,3; sau đó cho phép tất cả các ngắt (GIE = 1), rồi thực hiện ngắt 1. Nếu đang thực hiện ngắt 1 mà có ngắt 2 hoặc 3 nhảy vào thì điều j sẽ xảy ra???
Mong các cao thủ chỉ cho con đường sáng!
Lưu ý là áp dụng cho Pic16 mọi người nhé!

thay đổi nội dung bởi: mbk, 30-09-2008 lúc 05:21 PM.
mbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn