![]() |
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Jun 2007
Bài gửi: 74
: |
![]() em có vấn đề chưa hiểu về ngắt trong ccs c mong đc giải thích: thắc mắc về hàm disable_interrupts(level) level là : int_xxx hoặc global
-----theo như tài liệu sử dụng CCS tiếng việt (nguyên văn tựa đề) của tác giả TRẦN XUÂN TRƯỜNG thì tại trang số 29 của cuốn sách này tác giả có viết( tại dòng thứ 4 từ dưới đếm lên): (nguyên văn) "không dùng hàm này trong hàm phục vụ ngắt vì không có tác dụng,..." -----nhưng theo 1 code khác trên điễn đàn(và chính anh NAM cg đã đọc qua) thì hàm disable_interrupts(level) này lại có thể dùng đc trong ISR. sau đây là code(nguyên văn): ngat_1() { //code: disable ngat 1,2,3 <<<<< mâu thâu ở dòng này // gie=1 // isp của 1 } ..... các dòng khác tuơng tự vậy đâu là sự thật, kính mong mọi nguời giúp em em cảm ơn. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 4 túi
Tham gia ngày: Jun 2007
Bài gửi: 74
: |
ôi, các cao thủ ơi, trả lời giúp em với, có phải tại câu hỏi của em quá "dốt" hay vì vấn đề nào khác mà các cao thủ kg giúp e ạ.....
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 4 túi
Tham gia ngày: Aug 2008
Bài gửi: 89
: |
Mình không rõ các nguồn tài liệu kia, tuy nhiên theo mình thấy thì việc disable 1 interrupt khác hoặc global interrupt trong khi thực thi trong hàm phục vụ ngắt hiện hành là chuyện rất bình thường, sử dụng để đảm bảo việc xử lý không bị gián đoạn do khi đang xử lý trong ngắt hiện hành thì các ngắt có độ ưu tiên khác cao hơn xảy ra làm ngắt quảng(vì ngắt có độ ưu tiên cao hơn sẽ được phục vụ trước). Chú ý việc cấm các ngắt chứ không xóa cờ ngắt của nó nên sau khi enable lại các ngắt thì các ngắt sẽ được gọi phục vụ ngay sau đó.
Regards
__________________
Quang báo RG/RGB 6/8/12/16 bits màu Phone No: 0905.034.086 Email: lmquyen@gmail.com thay đổi nội dung bởi: cskiller, 25-08-2009 lúc 10:32 PM. |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 4 túi
Tham gia ngày: Aug 2008
Bài gửi: 89
: |
Trích:
![]()
__________________
Quang báo RG/RGB 6/8/12/16 bits màu Phone No: 0905.034.086 Email: lmquyen@gmail.com |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 4 túi
Tham gia ngày: Jun 2007
Bài gửi: 74
: |
![]() |
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
|
Mình cũng chua thử nữa cái disable_interrupts(global) người bảo được người bảo không!
còn mấy cái timer, RDA, RB ... mình nghi là được, bữa trước có làm trình dùng nhiều ngắt cũng làm như thế có thấy lỗi gì đâu. mà bạn test thu cái thi biết liền chứ có gì đâu. |
![]() |
![]() |
![]() |
#7 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
bản chất của nó chỉ là xóa hay set 1 bit thôi mà, có gì đâu mà ko được? mình nghĩ là không vấn đề gì hết, miễn là bạn phải đảm bảo các vấn đề về thuật toán để không ảnh hưởng đến việc khác thôi.
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com |
![]() |
![]() |
![]() |
|
|