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

                      • bqviet
                        Trả lời cho Đấu tắt điện cho máy tính bảng
                        bởi bqviet
                        Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                        06-12-2025, 17:17
                      • nguyendinhvan
                        Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                        bởi nguyendinhvan
                        Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                        05-12-2025, 19:59
                      • afrendly
                        Trả lời cho Đấu tắt điện cho máy tính bảng
                        bởi afrendly
                        Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                        04-12-2025, 01:27
                      • nick22
                        Trả lời cho Máy điện châm ?
                        bởi nick22
                        Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                        01-12-2025, 13:23
                      Đang tải...
                      X