реклама на сайте
подробности

 
 
> Перестают срабатывать прерывания таймеров
quarz
сообщение Apr 10 2015, 07:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-01-05
Из: Москва
Пользователь №: 1 980



Долго разбирался, отчего перестают срабатывать прерывания таймеров. Могли работать какое-то время, а потом все. Отваливался и Systick, и все остальные - Tim2, 3, 6 разом. Другие прерывания при этом продолжали работать. Проверял конфигурацию Systick - счетчик декрементируется, прерывание разрешено.

Оказалось, в одной из веток кода в обработчике Tim2 стояла задержка 10мс (работающая по Systick), что больше периода срабатывания этого таймера. Я хорошо знаю заповедь о минимизации времени работы в прерываниях, но думал что если к очередному срабатыванию не выйти из обработчика, максимум что потеряешь - это очередной вызов обработчика.
Почему же прекращают вызываться все обработчики таймеров?

мк ST32L151
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
quarz
сообщение Apr 10 2015, 08:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-01-05
Из: Москва
Пользователь №: 1 980



Естественно у Systick приоритет самый высокий, выше чем у других таймеров.
На счет архитектуры - Sleep в обработчике вызывался по ошибке, в обработчиках нет блокировок.

Мне интересно, почему отваливаются прерывания таймеров, если обработчик выполняется дольше чем период вызова прерываний
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 10 2015, 08:33
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(quarz @ Apr 10 2015, 11:16) *
Мне интересно, почему отваливаются прерывания таймеров, если обработчик выполняется дольше чем период вызова прерываний

Вы уверены:
1) что SysTick продолжает обрабатываться?
2) что вы не весите в сплошном обработчике какого-то прерывания (пользовательский код выполняется)?
3) что периферийный флаг сбрасывается и устанавливается вновь?
4) что устанавливается pending-бит соответствующего прерывания в NVIC?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 16:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016