Thông báo

Collapse
No announcement yet.

[help] Ưu tiên ngắt 8051

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [help] Ưu tiên ngắt 8051

    Chào các bác, hồi trước em có học 8051 mà không đến nơi đến chốn, nay có vài điểm rất thắc mắc mong các cao thủ giải đáp hộ:

    Em đọc sách thấy nói là nếu nhiều ngắt xảy ra đồng thời thì ngắt nào ưu tiên cao nhất (giả sử là i1) sẽ được xử lý, các ngắt còn lại bị lưu lại (giả sử là i2 bị lưu lại). Ngắt i1 củgn phải kiểm tra xem có ngắt nào đang thực thi không, nếu ngắt đang thực thi (gọi là i3) ưu tiên thấp hơn thì bị i1 ngắt lồng, còn nếu ưu tiên cao hơn thì i3 tiếp tục và i1 sẽ bị lưu lại. Em muốn hỏi là nếu sau khi ISR của ngắt i3 kết thúc mà lại vừa vặn có ngắt khác (i4) thì cái nào được ưu tiên: i1,i2,i4 ???

    Một cái nữa là bình thường nếu không sửa IP thì ngắt ngoài 0 ưu tiên cao hơn ngắt ngoài 1, nhưng em test thử trên proteus với code KeilC như sau:
    Code:
    #include "regx51.h"
    
    void f0() interrupt 0//ngắt ngoài 0
    {
    	P1=0xff;
    }
    void f1() interrupt 2//ngắt ngoài 1
    {
    	P1=0x0f;
    }				   
    void main()
    {
    	EA=1,EX1=1,EX0=1;
    	IT1=1,IT0=1;
    	P1=0x00;	
    	while(1);
    }
    Thì khi chạy nó lại ra 0x0f,

    như vậy thì Proteus sai hay em hiểu sai???
    Attached Files
    Chuyện nhỏ như con thỏ,bắt thỏ mới là chuyện lớn!!!

  • #2
    datasheet và lí thuyết các thầy nói về nhắt là chính xác rồi.Thứ tự ngắt là chuẩn.Ko cần phải bàn cãi.Nó có trong bảng vecto ngắt.Ngắt ngoài 0,timer0,ngắt ngoài 1,ngắt timer1, ngắt nối tiếp.


    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
    Tel: 031 518648 Phone: 0904 283 505

    Comment


    • #3
      Cám ơn bác, nhưng còn câu hỏi thứ nhất (cái nào ưu tiên cao hơn, i1,i2 hay i4) thì sao, bác trả lời giùm em nốt nhá, em đọc datasheet của atmel thì chỉ nói về ngắt ưu tiên theo IP hôi, còn cái em nói thì thực ra chả quan trọng gì, trong thực tế chắc chẳng bao giờ gặp, nhưng mà em phải làm bộ interrupt pooling bằng VHDl cho 8051 nên mới phải lăn tăn thế
      Chuyện nhỏ như con thỏ,bắt thỏ mới là chuyện lớn!!!

      Comment


      • #4
        cứ theo nguyên tắc mà ép.Nếu ngắt cao vừa thực hiện xong mà có ngắt khác xảy ra thì nó sẽ thực hiện ngắt đó.Nếu ngắt cao vừa xong mà ngắt cao lại xảy ra tiếp thì nó vẫn ưu tiên cái ngắt cao mới này.


        Add: 97 Quán Nam - Lê Chân - Hải Phòng.
        Tel: 031 518648 Phone: 0904 283 505

        Comment


        • #5
          Muốn tận mắt thấy sự ưu tiên của ngắt thì cứ làm 1 bài tập đơn giản sử dụng hết ngắt của 8051 sử dụng phím bấm và nghịch tới nghịch lui là sẽ thấy được thế nào là ưu tiên ngắt

          Comment


          • #6
            Mỗi nguồn ngắt cso thể được lập trionhf riêng cho 1 hoặc 2 mức ưu tiên bằng cách đặt hoặc xóa 1 bít trong IP của SFR.mỗi ngắt ưu tiên ở mức thấp có thể được ngắt bằng cách ưu tiên ở mức cao hơn nhưng không thể ngắt bằng ngắt có ưu tiên ở mức thấp hơn được

            Protues không sai.bạn phải xem lại mình?
            NBHVDNTG_C5!no trace

            Comment

            Về tác giả

            Collapse

            it4rb "second hand" student Tìm hiểu thêm về it4rb

            Bài viết mới nhất

            Collapse

            Đang tải...
            X