Về để bắt đầu sau khi bị gián đoạn?

I

ipunished

Guest
Tôi hiểu rằng gián đoạn khi xảy ra trả về điều khiển vi mô đến nơi nó lại từ .. nhưng gián đoạn của tôi bao gồm một công tắc dừng lại, tức là sau khi các iterrupt tôi muốn nó dừng lại mọi thứ .. mã của tôi bao gồm một động cơ chạy trong một (1) vòng lặp .. sau khi ngắt phần cứng được ép nó nên dừng lại tất cả mọi thứ và sau đó một lần nữa chờ đợi để bắt đầu nút để được ép .. tôi nghĩ rằng các nút chức năng gọi điện thoại bắt đầu trong vòng ISR, nhưng đó sẽ để lại ngăn xếp không tan. cách nào để làm được việc này?
 
có thể bạn đặt mã của bạn và sơ đồ ... Và cũng có bạn đề cập đến sau khi các phần cứng ngắt được ép nó nên dừng lại tất cả mọi thứ, có nghĩa là bạn muốn tự điều khiển tắt hoặc chỉ có động cơ ... Nếu bạn muốn [điều khiển quá] toàn bộ hệ thống để tắt tôi có thể cung cấp một giải pháp ... Điều này có thể được thực hiện bằng cách đặt mạch phần cứng nhỏ ... Sử dụng hoặc cửa [74HC1G32] và tải chuyển [FPF2100] bạn có thể đạt được điều này một ... Hoặc cửa có hai đầu vào [A và B] B nên kết nối nhấn nút [nút một đầu sẽ đi đến đầu vào của cổng OR và kết thúc khác đi vào VCC với điện trở kéo xuống] và A sẽ nhận được kết nối với GPIO của bộ điều khiển, sản lượng hoặc cửa [Y] sẽ nhận được kết nối với ON [3 pin] của FPF2100 [với kéo xuống trở] ... Các VOUT [pin 5] của FPF2100 sẽ được kết nối với VCC của vi điều khiển ... logic khá đơn giản khi bạn nhấn nút ấn, sản lượng hoặc cửa khẩu sẽ cao được kết nối để tải sau đó chuyển đổi năng lượng đi vào bộ điều khiển ... Trong chương trình của bạn làm cho GPIO cao [nào được kết nối với đầu vào khác của cửa hoặc], sau đó liên tục điện đi để điều khiển ... Sau đó ngừng chuyển được nhấn, ngừng tất cả mọi thứ [Giống như những gì bạn nói] ... Một lần nữa bắt đầu chuyển đổi ép, phần cứng sẽ chăm sóc của [tất cả mọi thứ trừ việc GPIO cao ]...: nụ cười:
 
Cảm ơn bạn đã trả lời kandhu chi tiết, của bạn, nhưng tôi không muốn biến những vi điều khiển hoàn toàn tắt, như sau khi bị gián đoạn, tôi muốn nó phải chờ đợi để bắt đầu nút một lần nữa, tôi chỉ muốn tahts sau khi chuyển đổi ngừng được nhấn nó chỉ dừng chạy tất cả mọi thứ , tôi có nghĩa là gửi 0 đến tất cả các cổng đầu ra, tuy nhiên sau đó tôi muốn nó phải chờ đợi để bắt đầu một lần nữa .. switchg mã số của tôi cho ISR những lúc bây giờ chỉ có gửi 0 đến các cổng đầu ra = /
 
Bạn có thể sửa đổi mã của bạn trong các thói quen ISR, và sử dụng một vòng lặp đơn giản chờ đợi để chuyển đổi được ép lại. Một khi nó được nhấn bắt đầu everthing sau đó thoát ra, các thói quen.
 
| Tôi nghĩ về điều đó, nhưng nó sẽ không rời khỏi đống quản lý yếu kém .. Tôi có nghĩa là khi vi điều khiển đi vào ISR, nó lưu những gì mình làm trên stack và sau đó quay lại và nhận ..
 
tốt hơn của bạn đặt mã ở đây ... Sau đó, bất cứ ai đưa ra giải pháp cho vấn đề của bạn ...
 
Khi bạn nhập thông thường, nó dừng lại quá trình gián đoạn. Nó chỉ các cửa hàng địa chỉ trở lại. Bạn cần một cái gì như thế này Lưu đăng ký ngừng động cơ.. chuyển đổi tất cả các kết quả đầu ra không. Loop chờ đợi cho chuyển đổi được ép một lần nữa . khởi động động cơ khôi phục lại các kết quả đầu ra. rõ ràng bất kỳ cờ gián đoạn phục hồi đăng ký [I ] cảnh [isr / I]
 
sổ tiết kiệm trong ISR, trao đổi này sẽ giúp bạn
 

Welcome to EDABoard.com

Sponsor

Back
Top