Что произойдет если во время прерывания МК ATmega8 будет вызвано другое прерывание? Например есть прерывание на прием UART, и что будет если во время приема будет вызвано скажем внешнее прерывание INT0?
Что произойдет если во время прерывания МК ATmega8 будет вызвано другое прерывание? Например есть прерывание на прием UART, и что будет если во время приема будет вызвано скажем внешнее прерывание INT0?
Что произойдет если во время прерывания МК ATmega8 будет вызвано другое прерывание? Например есть прерывание на прием UART,... Читать далее
Добрый день есть pro 20 года разобрал его собрал, и вот крест на батарееи, что может быть?мак буку 2 недели пролил немного... Читать далее
Всем привет! Мужики вопрос по Face ID. Смотрю все меняют шлейф после считывания кода с помощью JC или i2C, записывают данные... Читать далее
Насколько я понимаю процесс, обгорание контактов происходит при ненулевом малом расстоянии между ними. При разведенных контактах... Читать далее
Подскажите пожалуйста, Есть клавиатура 4х4, экран и ардуино УНО. Делаю меню: (переход по пунктам в меню пытаюсь осуществить... Читать далее
Так можно? Почему у электриков все по разному, три разных электрика просил схему нарисовать, все три разные, автоматы и подключения... Читать далее
Комментарии: 7
Dmitriy
будет стоять в очереди, пока обработчик первого не поднимет флаг глобального разрешения, gie кажется При условии, что там нет приоритета обработчиков, насколько помню в меге8 нет...
Nikolay
или не обработает флаг INT0 в том же цикле прерывания (смотря в какой момент времени пришло второе прерывание).
Dmitriy
Чтобы цикл начался нужно поднять глобал интеррапт, он может подняться (кроме софтово) только завершением текущего инструкцией reti или какая она там в меге8..., Тогда следующий командный цикл будет снова вход в интеррапт Это справедливо только если нет приоритетов...
Nikolay
точно, там же отдельные вектора. Это я с пиками перепутал.
Dmitriy
Все это верно в случае если мы уже обрабатываем первый запрос. В случае с одновременным приходом обоих запросов обычно есть аппаратный схемотехнический приоритет, вызывается более приоритетное, затем после обработки, то что в очереди У пиков также, почти. Только там поллинг делают софтварный , чтобы нтче не пропустить. А так да, если обработал там один, а перифериал висит, то он и останется висеть...
Nikolay
у пиков один вектор на все прерывания (в младших версиях) и если обработчик первого прерывания стоит в начале функции, еще не завершился и тут пришло прерывание INT0, то следующее if(INT0_IF) может обработать второе прерывание в том же цикле.
Dmitriy
Я позже уточню, но пик 16 кажется должен также ввалиться после gie=1 если включенный перифериал остался У пик 18 есть уже 2 вектора и софт приоритета, там сложнее https://images.app.goo.gl/i7ybgn5tKosARUki7