Trích:
Nguyên văn bởi quang_nhon84
Anh Nam ơi, cho em hỏi về xử lí ngắt. Bây giờ đã đọc được tín hiệu analog rồi. Giả sử tín hiệu đấy đưa ra là >150 thì mình thực hiện lệnh bấm thời gian cứ khoảng 2 giờ lại thay đổi chân ở PORTD 1 lần nhưng trong lúc đó mình vẫn phải đọc tín hiệu analog xem nó có >150 không,nếu không thì thực hiện lệnh khác. Vậy ta phải xử lí thế nào hả anh? Chắc phải dùng ngắt nhưng em không có tài liệu nào hướng dẫn xử dụng ngắt cả. Anh Nam chỉ hộ em thuật toán với!
|
Không cần phải dùng ngắt đâu bạn. Bạn đọc tín hiệu analog liên tục, nếu nó vẫn > 150 thì bạn cho timer 2 giờ chạy tiếp (đủ 2 giờ thì nó cập nhật PORTD). Nếu tín hiệu analog đọc về không thỏa điều kiện > 150 của bạn, thì bạn dừng timer 2 giờ, có thể xóa số đếm hiện thời của nó (để định thời lại từ đầu) hay không xóa số đếm hiện thời của nó (để cộng dồn những khoảng thời gian khi ngõ vào thỏa > 150).
Thân,