Câu hỏi về xử lý ngắt

V

vhn

Guest
Hi, Khi thiết bị ngoại vi của một vi điều khiển được thực hiện một công việc, nếu gián đoạn đến, vào những gì dụ gián đoạn sẽ được phục vụ? Làm thế nào nhiều độ trễ, chúng ta nên xem xét? Ví dụ, Assme một vi điều khiển gửi một byte trên UART. Sau khi bit đầu tiên được chuyển giao, một ngắt bên ngoài đến. Cho dù bị gián đoạn sẽ được phục vụ ngay lập tức hoặc sau khi các byte (còn lại 7 bit) được chuyển giao trên UART? Xin đề nghị. Cảm ơn, VHN
 
Theo tôi trong hầu hết các bộ điều khiển là đơn vị độc lập UART do đó, có hai trường hợp 1) bạn đang gửi byte từ thói quen bình thường tức là không sử dụng UART gián đoạn Trong trường hợp này gửi các bit còn lại sẽ không dừng lại (như UART là khối độc lập) và làm gián đoạn cũng sẽ được phục vụ ngay lập tức sau khi thực hiện lệnh hiện hành và đẩy PSW để ngăn xếp. 2) nếu bạn đang sử dụng UART gián đoạn sau đó nếu bị gián đoạn đến sẽ được phục vụ nếu nó có ưu tiên cao hơn. nếu đến ngắt có ưu tiên thấp hơn sau đó gián đoạn sẽ không được phục vụ.
 
Giới thiệu về độ trễ ngắt: được quyết định bởi chương trình của bạn và không phải bằng bộ điều khiển vi mô, vi điều khiển luôn luôn sẵn sàng phục vụ ngắt (có một số các chi phí như việc tìm kiếm vector, tiết kiệm đăng ký nhảy đến ISR, nhưng họ không đổi) nếu ngắt được kích hoạt . Nếu bạn đã vô hiệu hóa ngắt hoặc bạn đang chi tiêu rất nhiều thời gian trong một ISR (ngắt tự động vô hiệu hóa khi bạn nhập và ISR). Không có ngắt sẽ là dịch vụ cho đến khi được kích hoạt trở lại, và điều đó sẽ xác định độ trễ ngắt của bạn.
 

Welcome to EDABoard.com

Sponsor

Back
Top