Например TDA7294

Форум РадиоКот • Просмотр темы - stm32f030f4p6 режим захвата
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср янв 07, 2026 16:57:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: stm32f030f4p6 режим захвата
СообщениеДобавлено: Ср окт 09, 2019 17:53:10 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Чт дек 29, 2011 16:25:56
Сообщений: 83
Рейтинг сообщения: 0
Добрый день, форумчане!
Понадобилась помощь, не получилось настроить режим захвата. Пытался на разных таймерах, но так и не получил прерывания.
Вот на таймере TIM1 (канал 2):
Код:
NVIC_SetPriority(TIM1_CC_IRQn, 1);
NVIC_EnableIRQ(TIM1_CC_IRQn);

TIM1 ->PSC = 48 - 1;
TIM1 ->ARR = 65535 - 1;

TIM1 ->CCMR1 = (TIM1 ->CCMR1 & ~(TIM_CCMR1_CC2S | TIM_CCMR1_IC2F | TIM_CCMR1_IC2PSC)) |
                           TIM_CCMR1_CC2S_0;
                             
TIM1 ->CCER |= TIM_CCER_CC2P | TIM_CCER_CC2E;
TIM1 ->DIER |= TIM_DIER_CC2IE;
TIM1 ->CR1 |= TIM_CR1_CEN;

Микроконтроллер работает на частоте 48МГц. Прерывания по захвату (TIM1_CC_IRQHandler) не получаю. Пин настроен как input floating.
Пните в нужном направлении плиз...


Последний раз редактировалось gruffi Чт окт 10, 2019 11:47:56, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f030f4p6 режим захвата
СообщениеДобавлено: Чт окт 10, 2019 07:19:54 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
я абсолютно не разбираюсь в ARMах, но input floating настораживает.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f030f4p6 режим захвата
СообщениеДобавлено: Чт окт 10, 2019 07:31:23 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
я абсолютно не разбираюсь в ARMах, но input floating настораживает.

От мк зависит, на старых STM32F1 так и было, на всех остальных нужно выбирать режим альтернативной функции.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f030f4p6 режим захвата
СообщениеДобавлено: Чт окт 10, 2019 08:26:11 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Пин настроен как input floating. Пните в нужном направлении плиз...

альтернативная функция пина включена?
Пример из сниппетов, работает в реальных проектах:
Спойлер
Код:
__INLINE void ConfigureTIMxAsInputCapture(void)
{
  /* Configure NVIC for TIMx */
  /* (1) Enable Interrupt on TIMx */
  /* (2) Set priority for TIMx*/
  NVIC_EnableIRQ(TIMx_IRQn); /* (1) */
  NVIC_SetPriority(TIMx_IRQn,0); /* (2) */
 
  /* (1) Enable the peripheral clock of Timer x */
  /* (2) Set PCLK clock prescaler to /16 (111)
         set HCLK clock prescaler to /64 (1100) */
  /* (3) Enable the peripheral clock of GPIOA */
  /* (4) Select alternate function mode on GPIOA pin 8 */
  /* (5) Select AF2 on PA8 in AFRH for TIM1_CH1 */
 

  RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; /* (1) */
  RCC->CFGR |= RCC_CFGR_PPRE | RCC_CFGR_HPRE_3 | RCC_CFGR_HPRE_2; /* (2) */
  RCC->AHBENR |= RCC_AHBENR_GPIOAEN; /* (3) */
  GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODER8)) | (GPIO_MODER_MODER8_1); /* (4) */
  GPIOA->AFR[1] |= 0x02; /* (5) */
 
  /* (1) Select the active input TI1 (CC1S = 01),
         program the input filter for 8 clock cycles (IC1F = 0011),
         select the rising edge on CC1 (CC1P = 0, reset value)
         and prescaler at each valid transition (IC1PS = 00, reset value) */
  /* (2) Enable capture by setting CC1E */
  /* (3) Enable interrupt on Capture/Compare */
  /* (4) Enable counter */ 
 
  TIMx->CCMR1 |= TIM_CCMR1_CC1S_0 \
               | TIM_CCMR1_IC1F_0 | TIM_CCMR1_IC1F_1; /* (1)*/
  TIMx->CCER |= TIM_CCER_CC1E; /* (2) */ 
  TIMx->DIER |= TIM_DIER_CC1IE; /* (3) */
  TIMx->CR1 |= TIM_CR1_CEN; /* (4) */
}
----------
/**
  * @brief  This function handles TIM1 interrupt request.
  *         This interrupt subroutine computes the laps between 2 rising edges
  *         on T1IC. This laps is stored in the "Counter" variable.
  * @param  None
  * @retval None
  */
void TIM1_CC_IRQHandler(void)
{
uint16_t counter1;
 
/*
 
*/
  if ((TIMx->SR & TIM_SR_CC1IF) != 0)
  {
    if ((TIMx->SR & TIM_SR_CC1OF) != 0)  /* Check the overflow */
    {
      error = 0xFF;
      gap = 0;  /* Reinitialize the laps computing */
      TIMx->SR &= ~(TIM_SR_CC1OF | TIM_SR_CC1IF); /* Clear the flags */
      return;
    }
    if (gap == 0) /* Test if it is the first rising edge */
    {
      counter0 = TIMx->CCR1; /* Read the capture counter which clears the CC1ICF */
      gap = 1; /* Indicate that the first rising edge has yet been detected */
    }
    else
    {
      counter1 = TIMx->CCR1; /* Read the capture counter which clears the CC1ICF */
      if (counter1 > counter0) /* Check capture counter overflow */
      {
        Counter = counter1 - counter0;
      }
      else
      {
        Counter = counter1 + 0xFFFF - counter0 + 1;
      }
      counter0 = counter1;
      error = 0;
    }   
  }
  else
  {
    error = ERROR_WRONG_IT; /* Report an error */
  }
}



Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: stm32f030f4p6 режим захвата
СообщениеДобавлено: Чт окт 10, 2019 11:09:02 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
Для STM32F030 надо в альтернативный режим ноги перевести.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f030f4p6 режим захвата
СообщениеДобавлено: Чт окт 10, 2019 11:45:26 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Чт дек 29, 2011 16:25:56
Сообщений: 83
Рейтинг сообщения: 0
Спасибо. Перенастроил, как в сниппете, но все равно прерывания нет...Подключил ко входу просто провод, который замыкаю на землю - по анализатору вижу изменение состояния, но нет захвата. Попробую убрать всю логику и в main сделаю просто настройку и проверю захват.

Добавлено after 32 minutes 55 seconds:
я абсолютно не разбираюсь в ARMах, но input floating настораживает.

От мк зависит, на старых STM32F1 так и было, на всех остальных нужно выбирать режим альтернативной функции.

До этого с захватом работал как раз на STM32F1...

Спасибо за ответы. Отключил всю логику и перекинул настройку в main - сейчас захват происходит.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y