detachInterrupt()

Giới thiệu

Nếu bạn chưa biết Ngắt (interrupt) là gì, vui lòng tham khảo thêm tại bài attachInterrupt().

Hàm detachInterrupt() sẽ tắt các ngắt đã được kích hoạt tương ứng với thông số truyển vào. Giả sử sau khi nhấn nút bấm lần đầu tiên đèn led sẽ tắt nhưng nhấn lần thứ 2 đèn sẽ không tắt nữa. Lúc này cần dùng đến detachInterrupt() để tắt ngắt chúng ta đã tạo ra.

Cú pháp

detachInterrupt(interrupt);

Thông số

interrupt: số thứ tự ngắt (xem thêm ở bài attachInterrupt() )

Trả về

không

Ví dụ

Đoạn chương trình dưới đây sẽ bật sáng đèn led và chỉ tắt nó khi nhấn lần đầu tiên, thả ra đèn sẽ sáng lại. Nếu tiếp tục nhấn nữa thì đèn vẫn sáng mà không bị tắt đi.

int ledPin = 13;         // đèn LED được kết nối với chân digital 13
boolean daNhan = false;  // lưu giữ giá trị cho biết đã nhấn nút hay chưa

void tatled()
{
    digitalWrite(ledPin, LOW); // tắt đèn led khi còn nhấn nút
    daNhan = true; // lúc này đã nhấn nút
}

void setup()
{
  pinMode(ledPin, OUTPUT);      // thiết đặt chân ledPin là OUTPUT
  pinMode(2, INPUT_PULLUP); // sử dụng điện trở kéo lên cho chân số 2, ngắt 0
  attachInterrupt(0, tatled, LOW); // cài đặt ngắt gọi hàm tatled
}

void loop()
{
   digitalWrite(ledPin, HIGH);   // bật đèn led
   if (daNhan == true)
   {
        // Nếu đã nhấn nút thì tắt ngắt đi
        detachInterrupt(0); 
   }
}
Reference Tags: 
lên
8 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Hướng dẫn làm bài tập Arduino trên Cộng đồng Arudino Việt Nam - Vừa có kiến thức và có điểm cộng đồng

Như các bạn đã biết, hệ thống bài tập của Cộng đồng Arduino Việt Nam đã được ra đời từ đầu năm Bính Thân đến bây giờ, trải qua quá trình thử nghiệm với kết quả là sự hoạt động hoàn hảo của hệ thống. Hôm nay, đại diện cho BQT Arduino, tôi sẽ hướng dẫn các bạn tham gia làm bài tập tại đây. Với các bài tập được chọn lọc kỹ từ ban Kiểm tra viên, các bạn hoàn toàn có thể tin tưởng vào chất lượng và các đề bài mà BQT đưa ra nhé.

lên
90 thành viên đã đánh giá bài viết này hữu ích.

Bài 7: Cách viết chương trình không sử dụng hàm delay

Thông thường trong chương trình Arduino, khi cần dừng lại để chờ qua 1 khoảng thời gian chúng ta thường sử dụng hàm delay để thực hiện việc chờ này. Tuy nhiên cách làm này gây hao phí thời gian của CPU một cách vô ích, chúng ta không thể vừa dừng lại để chờ, vừa chạy 1 đoạn chương trình khác được.

lên
40 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: