Вопрос по непрерывности прерываний в STM32
13.01.2014, 16:45
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
MaxiMuz79, какая-то высосанная из пальца ситуация. Если важность main() выше важности обработчика прерываний, просто запрещаем это прерывание и в main() периодически проверяем флаг.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
13.01.2014, 16:49
|
|
|
Гражданин KAZUS.RUN
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
|
|
|
|
13.01.2014, 16:59
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Сообщение от MaxiMuz79
|
|
как изучающий STM я всего лишь задался вопросом о такой возможность
|
Я надеюсь, вы - материалист? Если да, то каким боком вы ожидаете, что из процессора, уже загруженного под завязку, можно выжать " ещё стописят"?
__________________
There's always more than one way to skin a cat.
|
|
|
|
13.01.2014, 22:01
|
|
|
Гражданин KAZUS.RUN
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Сообщение от tempora
|
|
Если да, то каким боком вы ожидаете, что из процессора, уже загруженного под завязку, можно выжать "ещё стописят"?
|
а " ещё стописят" и не нужно ..
|
|
|
|
13.01.2014, 22:05
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Сообщение от MaxiMuz79
|
|
п.с. в случае с AVR я бы даже не задумался над такой задачей
|
Он бы всё равно не успевал бы ничего выполнить в main().
Сообщение от MaxiMuz79
|
|
а можно предположить такую ситуацию, что прерывание (к примеру по наступлению какого либо события) в нормальном режиме вызывается достаточно редко, и время выполнения этого прерывания неизвестно; но по какимто причинам событие начало происходить чаще и обработка прерывания заняло все процессорное время.
|
И всего-то?
Вариант 1:
Добавьте булеву переменную, сигнализирующую о повторном входе в прерывание.
При входе в обработчик проверяйте её. Если установлено:
включаете тревогу,
запрещаете прерывание,
делаете аварийный выход из прерывания.
В майне в некритичное время проверяете её, если установлено - сбрасывайте.
Вариант 2.
Вынесите критический участок майна в прерывание, например, таймера. Задайте периодичность, установите наивысший приоритет и не парьтесь больше о выполнении критически важного участка кода вообще.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо omercury за это сообщение:
|
|
|
13.01.2014, 22:05
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Прерывания должны быть короткими и выполняться быстро. И все будет хорошо.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
|
|
|
13.01.2014, 22:18
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 23.09.2008
Адрес: Козьмодемьянск. Это на Волге.
Сообщений: 2,446
Сказал спасибо: 5,259
Сказали Спасибо 1,054 раз(а) в 614 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Топик стартеру притча:
"Однажды мудреца попросили рассказать о вселенской мудрости.
Тот неделю курил трубку с анашой и наконец, выдал:
"Банан большой, но кожура всё равно больше"
"
Твои вопросы вызывают желание выдавать именно подобные "мудрости".
|
|
|
|
13.01.2014, 23:47
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Сообщение от nahimovv
|
|
Праща? Рогатка?
|
Сообщение от omercury
|
|
Катапульта!
|
не-е, "Дора"!
|
|
|
|
14.01.2014, 08:47
|
|
|
Частый гость
Регистрация: 15.04.2008
Адрес: Йошкар-Ола
Сообщений: 39
Сказал спасибо: 47
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
а может стоит попробовать повысить приоритет прерывания?
|
|
|
|
14.01.2014, 09:28
|
|
|
Гражданин KAZUS.RUN
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Вопрос по непрерывности прерываний в STM32
Сообщение от omercury
|
Вариант 1:
Добавьте булеву переменную, сигнализирующую о повторном входе в прерывание.
При входе в обработчик проверяйте её. Если установлено:
включаете тревогу,
запрещаете прерывание,
делаете аварийный выход из прерывания.
В майне в некритичное время проверяете её, если установлено - сбрасывайте.
|
не вариант т.к. вход в прерывание уже занимает приличное время : макс.частота вызовов 1го пустого прерывания ок.320кГц при внутренней частоте 24МГц
Сообщение от Jeka_T
|
|
а может стоит попробовать повысить приоритет прерывания?
|
в данном случае его наоборот следовало бы снизить
Последний раз редактировалось MaxiMuz79; 14.01.2014 в 09:30.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:06.
|
|