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

 
 
> Прерывания в 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

Сообщений в этой теме
- 1kvi1   Прерывания в Cortex-M3   Nov 24 2011, 02:31
- - demiurg_spb   Думаю что это связано с тем что запросы на прерыва...   Nov 24 2011, 04:44
- - 1kvi1   ТО что флаги автоматически сбрасываются - это мне ...   Nov 24 2011, 05:15
- - 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 Текстовая версия Сейчас: 27th July 2025 - 22:35
Рейтинг@Mail.ru


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