Một khái niệm quan trọng được giải thích theo cách đơn giản nhất!
Bạn đang làm bài tập về nhà. Đột nhiên điện thoại reo!
Bạn liên tục liếc nhìn điện thoại xem có ai gọi không. Điều này làm bạn mất tập trung và tốn thời gian!
Bạn tập trung làm bài. Khi điện thoại reo, bạn mới dừng lại để nghe. Hiệu quả và thông minh hơn nhiều!
Vi điều khiển STM32 cũng hoạt động theo cách thứ hai, đó chính là Ngắt.
Ngắt là một cơ chế cho phép vi điều khiển tạm dừng công việc chính đang làm để xử lý một sự kiện đột xuất, sau đó quay lại công việc chính như chưa có gì xảy ra.
Khi một sự kiện xảy ra, STM32 sẽ làm gì?
Một nút được nhấn, cảm biến có tín hiệu, hoặc timer đếm xong.
Bộ xử lý kiểm tra và xác nhận yêu cầu ngắt là hợp lệ.
Lưu lại trạng thái công việc đang làm dở (giống như đánh dấu trang sách).
Chạy một đoạn code đặc biệt để xử lý sự kiện (ví dụ: bật đèn LED).
Sau khi xử lý xong, quay lại tiếp tục công việc đang làm dở.
CPU không lãng phí thời gian vào việc chờ đợi.
Với cơ chế ngắt, CPU có thể dành gần như toàn bộ thời gian cho các tác vụ chính. Nó chỉ tạm dừng một khoảng rất nhỏ để xử lý các sự kiện đột xuất khi chúng thực sự xảy ra. Điều này giúp tối ưu hóa hiệu năng và khả năng phản hồi của hệ thống.
Bạn sẽ thường xuyên gặp những "sự kiện" này.
Khi có tín hiệu từ bên ngoài tác động lên một chân GPIO, ví dụ như nhấn nút.
Khi bộ đếm thời gian (Timer) đếm xong hoặc bị tràn, hữu ích cho các tác vụ định thời.
Khi nhận hoặc gửi dữ liệu xong qua các cổng giao tiếp như UART, SPI, I2C.