Перехід до початку після переривання?

I

ipunished

Guest
Я розумію, що коли відбувається переривання мікро контролер повертає туди, де вона залишила від .. але мій переривання складається з вимикач, тобто після iterrupt я хочу, щоб зупинити всі .. мій код складається з Запуск двигуна в той час (1) петлі .. Після апаратного переривання натисненні він повинен зупинити всі, а потім знову чекати початку кнопку потрібно натискати .. Я думав про виклик функції кнопки "Пуск" в ISR, але це буде залишити стека незнешкоджених. будь-який спосіб обійти це?
 
Ви могли б помістити ваш код та схеми ... А також ви згадали після апаратного переривання натисненні він повинен зупинити всі, що означає, що ви хочете сам контролер вимкнений або тільки двигун ... Якщо ви хочете цілому [контролер занадто] система вимкнена я можу дати одне рішення ... Це може бути досягнуто шляхом малої ланцюга апаратури ... Використання або ворота [74HC1G32] і перемикач навантаження [FPF2100] ви можете досягти цього ... АБО "має два входи [і B] B повинні пов'язаних кнопку [кнопку один кінець піде на вхід або ворота й інший кінець йде до VCC з випадаючого резистор] і повинна підключитися до GPIO контролера, вихід АБО "[У] повинні підключитися до ПЗ [третій штир] з FPF2100 [з випадаючого резистор] ... VOUT [п'ятий контактний] з FPF2100 буде підключитися до VCC мікроконтролера ... Логіка досить проста, коли ви натискаєте кнопку, вихід воріт або буде високим, що пов'язано з вимикач навантаження, то влада йде на контролер ... У програмі зробити GPIO високий [який підключений до іншої вхід воріт або], то безперервно влада йде до контролера ... Тоді вимикач натиснута, зупинити всі [Подобається те, що ви сказали] ... Знову почати кнопка натиснута, апаратні засоби будуть піклуватися про все [за винятком рішень GPIO високий посмішкою ]...::
 
Спасибі за ваш докладну відповідь, kandhu, але я не хочу, щоб перетворити мікроконтролера повністю покинути, так як після переривання, я хочу, щоб чекати початку кнопку ще раз, я просто хочу tahts після зупинки натисканні кнопки він просто зупиняється все , я маю на увазі Відправити 0 на всі вихідні порти, однак після цього я хочу, щоб чекати початку switchg знову .. мій код для ISR на даний момент містить тільки відправки 0 до вихідних портів = /
 
Ви можете змінювати свій код в ISR рутину, і використовувати простий цикл очікування на комутатор буде натиснута знову. Після її натискання почати Everthing потім вийти рутини.
 
| Я думав про це, але це звичай залишати стека неправильно .. Я маю на увазі, коли мікроконтроллер виходить на ISR, він зберігає те, що його роблять на стек, а потім повернутися і забрати ..
 
Його краще ви поставити код тут ... Тоді хто-небудь дати рішення вашої проблеми ...
 
Коли ви входите в рутину, він зупиняється переривання процесу. Він зберігає лише зворотну адресу. Вам потрібно щось на зразок цього [я] Зберегти регістрів. [/I] зупинки двигуна. перемикач всі виходи до нуля. Луп чекає перейти до бути натиснута ще раз. запуск двигуна відновлення виходів. ясно будь-яке переривання прапори відновлення регістрів [I ] [Вихід ISR / I]
 
збереження регістрів в ISR, своп допоможе вам
 

Welcome to EDABoard.com

Sponsor

Back
Top