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

 
 
> Когда нужно сбрасывать флаг прерывания : в начале или в конце обработчика, Для таймера в примерах сброс, потом действия, во внешних - наоборот
IanPo
сообщение Nov 14 2014, 20:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 14-10-10
Пользователь №: 60 152



Речь про STM32!

Код1:
Код
void TIM3_IRQHandler(void)
{
  /* Clear TIM3 Capture compare interrupt pending bit */
  TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);

  /* Get the Input Capture value */
  IC2Value = TIM_GetCapture2(TIM3);

  if (IC2Value != 0)
  {
    /* Duty cycle computation */
    DutyCycle = (TIM_GetCapture1(TIM3) * 100) / IC2Value;

    /* Frequency computation */
    Frequency = SystemCoreClock / IC2Value;
  }
  else
  {
    DutyCycle = 0;
    Frequency = 0;
  }
}


Код2:
Код
void EXTI0_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  {
    /* Toggle LED1 */
     STM_EVAL_LEDToggle(LED1);

    /* Clear the  EXTI line 0 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line0);
  }
}


Правильно ли я понимаю, что вообще все равно, когда, но - после сброса появляется возможность повторного захода в обработчик, когда еще первый запрос не полностью обработан?

Сообщение отредактировал IanPo - Nov 14 2014, 20:33
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
nill
сообщение Nov 17 2014, 13:00
Сообщение #2


Частый гость
**

Группа: Validating
Сообщений: 124
Регистрация: 10-08-05
Пользователь №: 7 502



В целом так, но есть нюансы. Вот, почитайте:
http://www.keil.com/forum/18951/cortex-m3-...interrupt-flag/
Там разбирается ситуация, когда флаг прерывани сбрасывается в конце обработчика. Обработчик вызывается повторно сразу после выхода из него по причине задержки транзакции по шине данных, т.е. выход из обработчика уже произошёл, но флаг не был сброшен.
Go to the top of the page
 
+Quote Post

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

 


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


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