Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

У AVR нет приоритетной системы прерываний, по крайней мере в привычном мне понимании этого термина (+)

Отправлено ReAl 10 мая 2007 г. 12:39
В ответ на: Так у т/с0 приоритет прерывания выше чем у т/с3, почему он тогда не может работать внутри т/с3? отправлено serge_mok 10 мая 2007 г. 08:27

А вот у MCS51 есть, 2 или 4 уровня.
Чтобы лучше понять, что я имею ввиду - посмотри описания хоть и того же MCS51.

А у AVR уровень один, на этом единственном уровне есть цепочка доступа запроса к процессору. И её "приоритеты" работают только тогда, когда прерывания возникают одновремённо либо когда на момент освобождения процессора для обслуживания прерываний (sei) несколько запросов ждут.
Если sei дать в обработчике прерывания, то от этого момента будут разрешены *все* прерывания, как с большим, так и с меньшим приоритетом, чем обрабатываемое. Так что внимательно, чтобы не оказалось, что после sei в обработчике T/C3 вдруг всплывёт какое-то прерывание по концу записи в EEPROM ("оно же низкоприоритетное, пусть долго работает, не старшно"), в котором такого sei нет. И T/C0 будет ждать как миленький.

Не ахти у AVR это место, да ещё с моими привычками чуть что - прерывание.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru