|
Прерывания в AT90S8535, вложенные прерывания |
|
|
|
Nov 2 2004, 09:03
|
Участник

Группа: Новичок
Сообщений: 28
Регистрация: 2-11-04
Пользователь №: 1 016

|
Поясните начинающему, как будут обрабатываться прерывания от событий 1 (более высокий приоритет) и 2 (более низкий приоритет), если: 1.во время обработки события 1 произойдет событие 2 2.во время обработки события 2 произойдет событие 1
|
|
|
|
|
Nov 2 2004, 09:14
|
Участник

Группа: Свой
Сообщений: 51
Регистрация: 22-06-04
Из: Riga,Latvia
Пользователь №: 104

|
Наскока помню в AVR нету приоритета прерываний, тебе самому надо разрешать прерывание 1 во время обработки события 2, и запрещать прерывание события 2(ну ето автоматом AVR во время обработки прерываний делает) во время обработки 1 - го.
|
|
|
|
|
Nov 2 2004, 10:52
|
Участник

Группа: Новичок
Сообщений: 28
Регистрация: 2-11-04
Пользователь №: 1 016

|
спасибо за разъяснения
|
|
|
|
|
Oct 14 2009, 05:45
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
непонятно в том то и вопрос: значит может всё-таки долго и недолго относительные понятия например если по таймеру прерывания с периодом 64 мкс на их фоне разрешаются другие прерывания сейчас прерывания от этого таймера на время обработки его прерывания запрещаю - вот думаю можно ли не запрещать (если задерживаются некоторые прерывания таймера - некритично) из Вашего ответа понял, что обработчик таймера может вызваться повторно если его индивидуально не запретить при разрешении всех прерываний
|
|
|
|
|
Oct 14 2009, 07:19
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Пришелец @ Oct 14 2009, 09:08)  этого ответа и ждал  Да, ещё забыл сказать: при таком подходе к обработке прерываний, возможен пропуск прерываний. Например, если флаг прерывания от таймера взводится каждые 10 мс, а процедура обработки прерывания может затянуться на, например, 15 мс, то может случиться, что условие взведения флага произайдет дважды (ведь не факт, что обработка прерывания начнется сразу же, как установится флаг прерывания - прерывания могут быть замаскированны при обработке других прерываний). Наверное, что-то у Вас не в порядке с организацией обработки прерываний, раз приходится так извращаться: разрешать прерывания в процедуре обработки прерывания. Наверное, лучше "перелопатить" программу...
|
|
|
|
|
Oct 14 2009, 10:25
|

Частый гость
 
Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272

|
Да это само собой разумеется - пропускаться могут. насчёт перелопатить - согласен но на арме авр себя исчерпал посудите сами мега32(кварц 14.7456) - уарт на 115200 два программных уарта 19200 и 9600 вывод звука 16 кгц интерфейс с точ мемори (эл ключи) измерение частоты аналоговых сигналов (т.е. постоянно прерывания по окончанию измерения АЦП) ДТМФ декодер программный на SPI висят dataflash и fram (постоянный обмен и параллельно считывание звука) памяти давно не осталось - приходится ужиматься - код переписывать выбрасывать ненужное а данные засовывать в fram думаю давно пора менять процессор Ваше мнение?
|
|
|
|
|
Oct 14 2009, 15:53
|
Местный
  
Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017

|
Цитата думаю давно пора менять процессор Ваше мнение? Дело ваше. Мегу 644 не рассматривали? Избавитесь от одного програмного уарта и получите в 2 раза больше флеш и озу на той же печатной плате. Правда, насчет цен на 644 не в курсе. Если сопоставимо по цене с арм, то мега не конкурент. 2 IgorKossakЦитата произойдёт переход к обработчику любого (независимо от приоритета) прерывания, имеющему место (захваченному) на данный момент Откуда такая информация? То есть, если возникли одновременно 3 прерывания: I1,I2,I3 (расставлены в порядке приоритета), и внутри обработчика I1 разрешить прерывания, то не факт, что I2 будет обработано до I3??? Или Вы имели ввиду то, что после sei может быть вызвано прерывание как с большим, так и с меньшим приоритетом относительно текущего?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|