1, Ngắt (interrupt) là gì?
Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện một chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR – Interrupt Service Routine).
2, Trong các quá trình ngắt, ta phân biệt thành 2 loại: ngắt cứng và ngắt mềm
Ngắt mềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy
Khác với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do các
linh kiện điện tử tác đông lên hệ thống
3, Hoạt động: Khi thực hiện lệnh gọi ngắt, CPU sẽ tìm kiếm trong bảng vector ngắt địa chỉ của chương trình phục vụ ngắt. Người sử dụng cũng có thể xây dựng môt chương trình cơ sở như các chương trình xử lý ngắt. Sau đó, các chương trình khác có thể gọi ngắt ra để sử dụng. Một chương trình có thể gọi chương trình con loại này mà không cần biết địa chỉ của nó.
Ưu điểm của ngắt:
Trình tự xử lý ngắt:
Bảng Vector ngắt:
Cú pháp cho P1 and P2 interrupts
Ví dụ ngắt ngoài P2.0
#include <msp430F5510.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= 0x01; // Set P1.0 to output direction P2IE |= 0x01; // P2.0 interrupt enabled P2IES |= 0x01; // P2.0 Hi/lo edge P2IFG &= ~0x01; // P2.0 IFG cleared _BIS_SR(LPM4_bits + GIE); // Enter LPM4 w/interrupt } // Port 2 interrupt service routine #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { P1OUT ^= 0x01; // P1.0 = toggle P2IFG &= ~0x01; // P2.0 IFG cleared }
Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn
đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON
HotLine: 0972 800 931 Ms Duyên