![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 9
: |
![]() 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. |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|