23-11-2009, 11:19 AM
|
#11
|
Trưởng lão PIC bang
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
|
Trích:
Nguyên văn bởi pk178
Ý kiến của bác em xin hiểu thế này, không biết có đúng không, mong bác chỉ giáo :
......
- Trình phục vụ ngắt :
+ bật cờ báo hiệu có ngắt xảy ra : INT_FLAG = 1
- Chương trình chính :
...........
While(1){ // tạo vòng lặp vô hạn
+ Nếu INT_FLAG = 1{
......
}
+ Thực hiện các công việc A, B, C, D....
.................
}
Nếu như vậy, rõ ràng em vẫn phải thực hiện tiếp tục các công việc A, B, C cho đến khi kết thúc, khi 1 vòng lặp mới bắt đầu thì em mới thực hiện được cái yêu cầu đối với hàm ngắt. Như vậy thì tốc độ đáp ứng cũng đâu có cải thiện gì ạ ?
Tuy nhiên giải pháp của bác cũng là 1 giải pháp hay, ít nhất là đến bây giờ. Tối qua em đã thử dùng 1 chương trình con bình thường, không có ngắt, cũng phải kiểm tra liên tục xem người dùng có nhấn nút hay không.
Cám ơn bác đã giúp đỡ !!!
|
Bạn đã hiểu đúng ý tôi. Tốc độ đáp ứng bằng với xử lý trực tiếp từ chương trình phục vụ ngắt là tốt nhất rồi, làm gì có thể xử lý nhanh hơn. Điều được cải thiện ở đây là stack không bị sử dụng quá mức, chính là vấn đề bạn đang gặp phải.
Thân,
|
|
|