Vấn đề xử lý ngắt trong lập trình C - Đề tài môn Lập trình hệ thống và ghép nối thiết bị
Bài tập lớn môn: Lập trình hệ thống ghép nối thiết bị Đề tài: Xử Lý Ngắt Trong Lập Trình C Nhóm 14: Nguyễn Việt Long Nguyễn Như Tỉnh Hà Văn Trường Đỗ Văn Tiền I) CÁC KHÁI NIỆM: 1, Mỗi thiết bị phần cứng hay chương trình cần đến giúp đỡ CPU gửi tín hiệu lệnh gọi ngắt đến vi xử lý định công việc cụ thể mà cần CPU thực Khi vi xử lý nhận tín hiệu ngắt thường tạm ngưng tất hoạt động khác kích hoạt chương trình có nhớ gọi chương trình xử lý ngắt tương ứng với số liệu ngắt cụ thể Sau chương trình xử lý ngắt làm xong nhiệm vụ, hoạt động máy tính tiếp tục lại từ nơi bị tạm dừng lúc xảy ngắt - Ngắt (interrupt) trình dừng chương trình chạy để ưu tiên thực chương trình khác, chương trình gọi chương trình phục vụ ngắt (ISR – Interrupt Service Routine) -Ngắt trương trình có mức độ ưu tiên cao 2, Trong trình ngắt, ta phân biệt thành loại: ngắt cứng ngắt mềm Ngắt mềm ngắt gọi lệnh chương trình ngôn ngữ máy Khác với ngắt mềm, ngắt cứng không khởi động bên máy tính mà linh kiện điện tử tác đông lên hệ thống 3, hoạt động: Khi thực lệnh gọi ngắt, CPU tìm kiếm bảng vector ngắt địa chương trình phục vụ ngắt Người sử dụng xây dựng môt chương trình sở chương trình xử lý ngắt Sau đó, chương trình khác gọi ngắt để sử dụng Một chương trình gọi chương trình loại mà không cần biết địa II) CƠ CHẾ SỦ LÝ NGẮT TRONG C: Trong C hỗ trợ thư viện hoàn hảo, để sử dụng ngắt chương trình C cấu trúc ngắt C cần include file “interrupt.h” nằm thư mục “avr” File header interrupt.h chứa định nghĩa hàm phương thức phục vụ cho viết chương trình phục vụ ngắt , vector ngắt không định nghĩa file mà file iom8.h Trong đoạn code sử dụng biến tạm 8bit, có dấu để lưu giá trị đếm, tên biến val, có ngắt tăng val đơn vị ngược lại có ngắt INT1 giảm val nội dung trình phục vụ ngắt Trong đoạn chương trình trước hết thực việc xác lập hoạt động cho ngắt sau chương trình vào vòng lặp vô tận while, PORTC đùng để kiểm tra chương trình vòng lặp vô tận hoạt động Câu lệnh MCUCR│=(1