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

 
 
> Прерывания в Cortex-M3
1kvi1
сообщение Nov 24 2011, 02:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-12-10
Пользователь №: 61 414



Добрый день!

Возникла следующая интересная проблема.

По ходу выполнения прошивки в какой то момент происходит зацикливание программы на прерывании от USART1.

То есть выполняется запуск обработчика прерываний с частотой примерно 100 кГц.

Основная программа успевает сделать несколько инструкций после чего снова происходит прерывание.

При этом если остановить обработку прерывания отладчиком и походить по инструкциям нормальный ход программы восстанавливается.

Прерывания разрешены только на прием, флаг готовых данных не взведен.

В регистре NVIC->ICSR указывается что активное прерывание от usart1.

С чем может быть связанно такое поведение?

Осциллографом контролировал линию - стабильная единица на обоих линиях.
Стабильно повторяется. Прерывания по приему не запрещается и разрешено постоянно.

Код
void USART1_IRQHandler (void) {  
  VD3R_ON;
  VD3G_ON;

  if (USART_GetITStatus(USART1,USART_IT_TXE)) {
//    USART_ClearITPendingBit(USART1,USART_IT_TXE);

  }
  
  if (USART_GetITStatus(USART1,USART_IT_RXNE)) {
//    USART_ClearITPendingBit(USART1,USART_IT_RXNE);

    unsigned char receive_char=USART_ReceiveData(USART1);

    if (!modemmode) {

  }

  VD3R_OFF;
  VD3G_OFF;
}


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
1kvi1
сообщение Nov 24 2011, 05:15
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 5-12-10
Пользователь №: 61 414



ТО что флаги автоматически сбрасываются - это мне известно, учел - и за комментировал их сброс.

Другое дело что чтение происходит лишь после анализа флага.

Почему может пере запускаться прерывание если флаги состояния для которых разрешено прерывание все сброшены?

Прерывания на передачу сброшены. Флаги TC TXE взведены, но прерывание отключено по ним.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 1kvi1   Прерывания в Cortex-M3   Nov 24 2011, 02:31
- - demiurg_spb   Думаю что это связано с тем что запросы на прерыва...   Nov 24 2011, 04:44
- - vptr   Цитата(1kvi1 @ Nov 24 2011, 05:31) Добрый...   Nov 24 2011, 05:31
|- - demiurg_spb   Цитата(vptr @ Nov 24 2011, 09:31) не люби...   Nov 24 2011, 05:36
|- - vptr   да и обработка прерывания завершается TIM_ClearITP...   Nov 24 2011, 05:58
|- - AHTOXA   Возможно, это то, что называется "spurious in...   Nov 24 2011, 06:08
|- - KnightIgor   Цитата(vptr @ Nov 24 2011, 07:58) да и об...   Nov 24 2011, 08:37
|- - demiurg_spb   Цитата(KnightIgor @ Nov 24 2011, 12:37) В...   Nov 24 2011, 08:50
||- - KnightIgor   Цитата(demiurg_spb @ Nov 24 2011, 10:50) ...   Nov 24 2011, 09:34
|- - vptr   Цитата(KnightIgor @ Nov 24 2011, 11:37) В...   Nov 24 2011, 09:52
|- - demiurg_spb   Цитата(vptr @ Nov 24 2011, 13:52) и тольк...   Nov 25 2011, 04:37
|- - dxp   Цитата(demiurg_spb @ Nov 25 2011, 11:37) ...   Nov 25 2011, 06:34
|- - demiurg_spb   Цитата(dxp @ Nov 25 2011, 10:34) А не пом...   Nov 25 2011, 06:58
|- - dxp   Цитата(demiurg_spb @ Nov 25 2011, 13:58) ...   Nov 25 2011, 15:21
- - andrewlekar   А по-моему никто ничего не рушит, а просто прерыва...   Nov 24 2011, 05:42
- - 1kvi1   "spurious interrupt" - да был такой опыт...   Nov 24 2011, 08:53
- - ViKo   А чего-й-то у меня прерывание работает простенько?...   Nov 25 2011, 12:04
|- - demiurg_spb   Цитата(ViKo @ Nov 25 2011, 16:04) А чего-...   Nov 28 2011, 08:01
|- - ViKo   Цитата(demiurg_spb @ Nov 28 2011, 11:01) ...   Nov 28 2011, 08:50
- - 1kvi1   К сожалению, описанные выше ситуации, когда флаг з...   Nov 27 2011, 15:33
|- - dxp   Цитата(1kvi1 @ Nov 27 2011, 22:33) Интере...   Nov 27 2011, 16:24
- - V_M_Luck   ЦитатаПоэтому, имхо, грамотный подход - это исполь...   Dec 8 2011, 10:13
- - 1kvi1   Внимательное чтение документации помогло определит...   Dec 9 2011, 09:54


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 11:55
Рейтинг@Mail.ru


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