Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 23:58

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 09 апр 2019, 16:23 
Только пришел

Зарегистрирован: 09 апр 2019, 16:08
Сообщения: 7
Микроконтроллер STM32WB, все равно что STM32F4. Сгенерировал в CubeMX LowLevel, добавил код разрешения прерываний и старта таймера.
Но конфигурация не запускается (прерывания не вызываются). Пины Порта А все проверил - прозвонил. Что-то еще упустил?
ПЗ: изначально пробовал HAL, результат тот же.
Код:
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3;
  GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  GPIO_InitStruct.Pull = LL_GPIO_PULL_DOWN;
  GPIO_InitStruct.Alternate = LL_GPIO_AF_1;
  LL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  TIM_InitStruct.Prescaler = 0;
  TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
  TIM_InitStruct.Autoreload = 0;
  TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
  LL_TIM_Init(TIM2, &TIM_InitStruct);
  LL_TIM_SetClockSource(TIM2, LL_TIM_CLOCKSOURCE_INTERNAL);
  LL_TIM_DisableARRPreload(TIM2);
  LL_TIM_SetTriggerOutput(TIM2, LL_TIM_TRGO_RESET);
  LL_TIM_DisableMasterSlaveMode(TIM2);
  LL_TIM_IC_SetActiveInput(TIM2, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI);
  LL_TIM_IC_SetPrescaler(TIM2, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1);
  LL_TIM_IC_SetFilter(TIM2, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1);
  LL_TIM_IC_SetPolarity(TIM2, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_RISING);
  //пропущен идентичный код для остальных трех каналов

  /* USER CODE BEGIN 1 */

  LL_TIM_EnableIT_CC1(TIM2);
  LL_TIM_EnableIT_CC2(TIM2);
  LL_TIM_EnableIT_CC3(TIM2);
  LL_TIM_EnableIT_CC4(TIM2);
  LL_TIM_EnableCounter(TIM2);
  /* USER CODE END 1 */
...
  NVIC_SetPriority(TIM2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),5, 0));
  NVIC_EnableIRQ(TIM2_IRQn);



Код:
void TIM2_IRQHandler(void)
{
  /* USER CODE BEGIN TIM2_IRQn 0 */
   TIM2->SR=0;
   LL_TIM_ClearFlag_CC1(TIM2);
   LL_TIM_ClearFlag_CC2(TIM2);
   LL_TIM_ClearFlag_CC3(TIM2);
   LL_TIM_ClearFlag_CC4(TIM2);
  /* USER CODE END TIM2_IRQn 0 */
  /* USER CODE BEGIN TIM2_IRQn 1 */
         pin = 1;
  /* USER CODE END TIM2_IRQn 1 */
}


Последний раз редактировалось Oval 09 апр 2019, 20:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 09 апр 2019, 16:36 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 416
Откуда: Киев
Мда что HAL у них, что LL...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 09 апр 2019, 17:51 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3994
Откуда: КЧР, поселок Нижний Архыз
ТС, сядь и напиши код руками. Вглядываться в эти нечитабельные простыни никто не будет!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 09 апр 2019, 20:12 
Только пришел

Зарегистрирован: 09 апр 2019, 16:08
Сообщения: 7
Eddy_Em писал(а):
ТС, сядь и напиши код руками. Вглядываться в эти нечитабельные простыни никто не будет!

сильно меньше строк станет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 09 апр 2019, 20:18 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3994
Откуда: КЧР, поселок Нижний Архыз
И строк меньше, и читабельность в разы выше будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфигурация TIM2 для input capture 4 каналов
СообщениеДобавлено: 12 апр 2019, 04:24 
Заглядывает иногда

Зарегистрирован: 16 дек 2018, 05:02
Сообщения: 97
Перед бесконечныи циклом:

Код:
/* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start_IT(&htim1);


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

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


Кто сейчас на конференции

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


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB