Thông báo

Collapse
No announcement yet.

Xin hỏi các anh vài điều về Ngắt ngoài AVR

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

  • Xin hỏi các anh vài điều về Ngắt ngoài AVR

    Theo em biết thì thanh ghi MCUC để xác định chế độ cho ngắt ngoài, thanh ghi MCUCR để cho phép ngắt nào hoạt động
    E có một câu hỏi là em muốn khi ngắt 0 làm việc thì không nhận ngăt1 và ngược lại khi ngắt 1 làm việc thì không nhận ngắt 0.
    Em đã thử tác động vào cả thanh ghi MUCR bit 6,7 và cả bit Global Interrupt Enable mà khi mô phỏng vẫn không được.
    Khi chương trình của ngắt 0 chạy mà ta tác động vào nút bấm ngắt 1 thì lệnh ngắt vẫn được nhận.
    Xin các anh chị bỏ chút thời gian chỉ giáo cho em, em xin cảm ơn!

  • #2
    khi vào chương trình phục vụ ngắt 0 thì xóa ko cho ngắt 1 xảy ra gần thoát ra thì cho phép nhận ngắt 1 và ngược lại với cái chương trình phục vụ ngắt 1

    Comment


    • #3
      Em đã thử rồi anh chung1608 ạ. Nhưng mà khi tác động bằng cả những cách trên thì đều không ổn
      Cụ thể là:
      Nếu ngắt 0 đang chạy, mà nhấn ngắt 1 thì chương trình của ngắt 1 không chạy ngay mà sau khi chạy xong chương trình ở ngắt 0 thì tiếp tục chạy CT ngắt 1
      Em đã mô phỏng trên ISIS. Chính vì vậy em mới nhờ tới các anh chị chỉ giáo cho

      Comment


      • #4
        Nguyên văn bởi tuanvjpro Xem bài viết
        Em đã thử rồi anh chung1608 ạ. Nhưng mà khi tác động bằng cả những cách trên thì đều không ổn
        Cụ thể là:
        Nếu ngắt 0 đang chạy, mà nhấn ngắt 1 thì chương trình của ngắt 1 không chạy ngay mà sau khi chạy xong chương trình ở ngắt 0 thì tiếp tục chạy CT ngắt 1
        Em đã mô phỏng trên ISIS. Chính vì vậy em mới nhờ tới các anh chị chỉ giáo cho
        Khi vào chương trình ngắt thì gọi CLI và trước khi ra khỏi ngắt thì xóa cờ báo ngắt INTF0 INTF1 của thanh ghi GIFR và gọi SEI.
        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
        Xem thêm tại Online Store ---> Click here
        Mob: 0982.083.106

        Comment


        • #5
          Ý của anh là thế này đúng không ạ:
          // External Interrupt 0 service routine
          interrupt [EXT_INT0] void ext_int0_isr(void)
          {
          // Place your code here

          #asm("cli")
          out1=1;
          out2=0;
          delay_ms(2000);
          GICR=0x00;
          #asm("sei")
          }
          Em đã thử anh ạ, không thành công
          Nguyên văn bởi VNarmy Xem bài viết
          Khi vào chương trình ngắt thì gọi CLI và trước khi ra khỏi ngắt thì xóa cờ báo ngắt INTF0 INTF1 của thanh ghi GIFR và gọi SEI.

          Comment


          • #6
            hì là được oy` :v
            GIFR chứa hai cờ ngắt INTF1,0 bit 7,6. AVR cho phép xóa cờ ngắt bằng cách set bit 1 lên cờ ngắt
            nên trong các hàm thực hiện ngắt chỉ cần set 2 bit 6,7 của GIFR lên 1 là nó sẽ không thực hiện ngắt kia sau khi xong ngắt đang thực hiện nữa (không biết đây có phải ý bạn muốn thực hiện ko?).
            Nghick cái này hiểu thêm đc về ngắt, mọi khi vẫn làm nhưng ko hiểu. haha :v

            Comment


            • #7
              Ý của bạn là:
              Muốn vô hiệu hóa ngắt thì ta set bit 6(7) lên "1" thay vì xóa bit đó về "0"?
              Right?
              Và mình đã nhầm ở chỗ:
              Thay vì lập lên "1" thì mình lại xóa về "0" hai bit đó?

              Comment


              • #8
                Mình đã thử. very goooooooooooood
                Rất cảm ơn bạn, chơi với người thông minh biết ngay. he
                Cảm ơn nhiều nhé.
                Nếu có thể cho mình xin yahoo or facebook để tiện trao đổi nhé ^^

                Comment


                • #9
                  Em xin lỗi vì chưa hiểu hết ý của anh. ^^ Em đã thử và đã hiểu rồi anh ạ. Anh cho em hỏi là cờ ngắt mình xóa bằng cách ghi bit "1" lên nó ạ?

                  Comment


                  • #10
                    Nguyên văn bởi tuanvjpro Xem bài viết
                    Em xin lỗi vì chưa hiểu hết ý của anh. ^^ Em đã thử và đã hiểu rồi anh ạ. Anh cho em hỏi là cờ ngắt mình xóa bằng cách ghi bit "1" lên nó ạ?
                    Trích datasheet

                    Bit 7 – INTF1: External Interrupt Flag 1
                    When an event on the INT1 pin triggers an interrupt request, INTF1 becomes set (one). If the I-bit in SREG and the INT1 bit in GICR are set (one), the MCU will jump to the corresponding Interrupt Vector. The flag is cleared when the interrupt routine is executed. Alternatively, the flag can be cleared by writing a logical one to it. This flag is always cleared when INT1 is configured as a level interrupt.
                    AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                    Xem thêm tại Online Store ---> Click here
                    Mob: 0982.083.106

                    Comment


                    • #11
                      Em cảm ơn anh!
                      Nếu có thể anh cho em xin Yh! hoặc Fb của anh để kết bạn được không ạ?

                      Comment

                      Về tác giả

                      Collapse

                      tuanvjpro Tìm hiểu thêm về tuanvjpro

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

                      Collapse

                      • mansion123
                        Bật mí những điều ít ai biết về thi công gỗ óc chó
                        bởi mansion123
                        Thi công gỗ óc chó giúp không gian trở nên sang trọng, ấm cúng, gần gũi hơn. Sự kết hợp giữa thẩm mỹ và chất lượng cao của gỗ óc chó chắc chắn sẽ mang lại giá trị lâu dài và làm hài lòng ngay cả những khách hàng khó tính nhất. Vậy đằng
                        ...
                        hôm nay, 16:08
                      • tuyennhan
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi tuyennhan
                        Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                        Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                        hôm nay, 07:44
                      • vi van pham
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi vi van pham
                        Cám ơn những lời chúc tốt đẹp của em.

                        Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                        Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                        hôm nay, 02:00
                      • nhathung1101
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi nhathung1101
                        Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                        Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                        Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                        Hôm qua, 22:18
                      • dinhthuong80
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi dinhthuong80
                        Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                        Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                        Hôm qua, 14:51
                      • dinhthuong80
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi dinhthuong80
                        Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                        Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                        Hôm qua, 14:39
                      • dinhthuong80
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi dinhthuong80
                        Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                        Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                        Hôm qua, 14:28
                      • bqviet
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi bqviet
                        Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                        21-02-2025, 20:26
                      • mèomướp
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi mèomướp
                        Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                        21-02-2025, 12:32
                      • vi van pham
                        Trả lời cho Tiếng Anh cho người Việt
                        bởi vi van pham
                        Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                        Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                        20-02-2025, 21:31
                      Đang tải...
                      X