Mục lục:
- Bước 1: Xử lý ngắt
- Bước 2: Đặt khoảng thời gian định kỳ
- Bước 3: Khởi tạo ngắt
- Bước 4: Nơi thêm mã của bạn
Video: Arduino - Ngắt định kỳ: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Có thể hướng dẫn này về việc sử dụng ngắt định kỳ để định thời gian trong các chương trình Arduino. Đây là một bước cho một lập trình viên Arduino mới chớm nở, những người biết rằng Arduino có thể làm được nhiều hơn thế, nhưng không biết làm thế nào để biến điều đó thành hiện thực.
Nếu có vấn đề về hiệu suất, tôi giả sử rằng bạn đang sử dụng một hoặc nhiều hàm delay (). Bí quyết là loại bỏ (các) hàm delay () và thay thế một ngắt. Hàm delay () buộc Arduino không làm gì trong khi đợi hoàn thành delay (). Sử dụng ngắt cho phép chương trình của bạn làm những việc khác trong khi chờ hết thời gian trễ. Thường có một lượng lớn thời gian chết không sử dụng có thể được sử dụng cho những việc khác khi sử dụng delay (). Sử dụng một ngắt giải quyết vấn đề này.
Bước 1: Xử lý ngắt
1. Thêm trình xử lý ngắt vào chương trình của bạn. Chỉ cần sao chép và dán vào một nơi nào đó phía trên setup ();
const unsigned long TIMER0_COUNT = 500; // Khoảng thời gian hẹn giờ 500 msec
// Trình xử lý ngắt TIMER0 flight bool time = false; ISR (TIMER0_COMPA_vect) {static unsigned long count = 0; if (++ count> TIMER0_COUNT) {count = 0; thời gian = true; // thời gian được đặt thành true mỗi TIMER0_COUNT ms} // (thời gian cần được xóa trong quy trình chính)}
Bước 2: Đặt khoảng thời gian định kỳ
2. Đặt khoảng thời gian. Quy trình này tự cõng vào ngắt TIMER0, ngắt này được thiết lập để kích hoạt sau mỗi ~ 1 mili giây.
"Khoảng thời gian" của bạn là số lần ngắt TIMER0 để xử lý. Mỗi khoảng thời gian là ~ 1 msec, vì vậy bạn thực sự đang đặt số lượng ngắt TIMER0 để đếm trước khi kích hoạt khoảng thời gian của mình. IOW, đặt biến TIMER0_COUNT thành tuy nhiên bạn muốn đợi bao nhiêu mili giây. Ví dụ: sử dụng 500 cho một nửa giây. Sử dụng 3000 trong 3 giây.
Bước 3: Khởi tạo ngắt
3. Thêm mã "khởi tạo TIMER0" vào phương thức setup () của bạn. Một lần nữa, chỉ cần sao chép và dán vào setup ().
// *** Khởi tạo TIMER0 ***
cli (); // tắt tất cả các ngắt TIMSK0 = 0; // tắt timer0 cho jitter thấp hơn OCR0A = 0xBB; // đếm ngắt tùy ý TIMSK0 | = _BV (OCIE0A); // heo quay lại ngắt sei (); // bật lại ngắt
Bước 4: Nơi thêm mã của bạn
4. Thêm mã "kiểm tra thời gian" vào phương thức loop () của bạn. Sao chép và dán vào vòng lặp ().
nếu (thời gian) {
thời gian = sai; // làm gì đó ở đây}
Dấu "time = false;" dòng là quan trọng. Nếu không có dòng này, (các) dòng "làm gì đó ở đây" sẽ được thực thi mỗi khi chương trình thực hiện loop ().
Tất nhiên, bạn thay thế các hoạt động của riêng bạn trong dòng "làm điều gì đó ở đây". Bắt đầu với việc in một số văn bản hoặc nhấp nháy đèn LED.
Bạn đã hoàn tất!
Đề xuất:
Sử dụng phần mở rộng lồng ngực của Hope để tìm Công việc chưa hoàn chỉnh của Sắc lệnh đền thờ trong cây gia đình của bạn về Tìm kiếm gia đình: 11 bước
Sử dụng phần mở rộng Rương của Hope để Tìm công việc pháp lệnh đền thờ chưa hoàn chỉnh trong cây gia đình của bạn trên Tìm kiếm gia đình: Mục đích của tài liệu hướng dẫn này là để trình bày cách tìm kiếm gia phả của bạn trong Tìm kiếm gia đình cho tổ tiên có công việc pháp lệnh đền thờ chưa hoàn thành bằng cách sử dụng phần mở rộng Rương của hy vọng. Sử dụng Hope's Chest có thể tăng tốc đáng kể tìm kiếm của bạn cho
Định hướng lại một Hộp Bộ định tuyến Cũ cho Dự án Arduino của bạn: 3 bước
Định lại mục đích một Hộp bộ định tuyến cũ cho Dự án Arduino của bạn: Dự án này xuất phát từ nhu cầu xây dựng dự án tự động hóa gia đình của tôi. Tôi quyết định sử dụng lại vỏ hộp từ một bộ định tuyến PlusNet cũ bị lỗi (bộ định tuyến Thomson TG585). bao vây là :: Hộp treo tường cấu hình thấp Chảo có nắp bật ra dễ dàng
Cổng thông tin cố định ESP32 để định cấu hình cài đặt IP tĩnh và DHCP: 8 bước
Cổng thông tin cố định ESP32 để định cấu hình cài đặt IP tĩnh và DHCP: ESP 32 là thiết bị có tích hợp WiFi và BLE. Nó là một lợi ích cho các dự án IoT. Chỉ cần cung cấp cấu hình SSID, mật khẩu và IP của bạn và tích hợp mọi thứ vào đám mây. Tuy nhiên, quản lý cài đặt IP và thông tin đăng nhập Người dùng có thể là một
Người định cư ở Raspi - Người định cư của Catan nhân bản với đồ điện tử: 5 bước
Settlers of Raspi - một game Settlers of Catan Clone With Electronics: Tài liệu hướng dẫn này sẽ hướng dẫn bạn các bước tạo " Settlers of Raspi ", một trò chơi Settlers of Catan với thiết bị điện tử và giao diện web
Màn hình cảm ứng Đồng bộ hóa gia đình & Bảng điều khiển gia đình gắn trên màn hình: 7 bước (có Hình ảnh)
Bảng điều khiển Home & Family Sync & Home trên màn hình cảm ứng: Chúng tôi có lịch được cập nhật hàng tháng với các sự kiện nhưng lịch được thực hiện theo cách thủ công. Chúng ta cũng có xu hướng quên những việc đã làm hết hoặc những việc vặt khác. Ở thời đại này, tôi nghĩ sẽ dễ dàng hơn nhiều nếu có một hệ thống đồng bộ lịch và sổ ghi chú mà c