pitagoever gửi vào
- 22558 lượt xem
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); } }