Например TDA7294

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

Текущее время: Вт окт 28, 2025 13:05:49

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F030F4P6 TIM14
СообщениеДобавлено: Вт окт 14, 2025 09:50:57 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 164
Рейтинг сообщения: 0
Код:
//                      PA7 INTERRUPTIONS_CAPTURE
MODIFY_REG(GPIOA->MODER, GPIO_MODER_MODER6_Msk, 0b10 << GPIO_MODER_MODER6_Pos); // PA7 Режим альтернативных функций
MODIFY_REG(GPIOA->AFR[4], GPIO_AFRL_AFSEL7_Msk, 0b0100 << GPIO_AFRL_AFSEL7_Pos); // AF-4 PA7
MODIFY_REG(GPIOA->PUPDR, GPIO_PUPDR_PUPDR6_Msk, 0b00 << GPIO_PUPDR_PUPDR6_Pos); // PA7 Без подтягивания
MODIFY_REG(GPIOA->OSPEEDR, GPIO_OSPEEDR_OSPEEDR0_Msk, 0b11 << GPIO_OSPEEDR_OSPEEDR0_Pos); //PA0 High speed

Код:
void TIM14_capture(void){
SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM14EN); //  Тактирование TIM14 ON
CLEAR_BIT(TIM14->CR1,TIM_CR1_CEN); // Счётчик OFF
CLEAR_BIT(TIM14->CCMR1,TIM_CCMR1_OC1PE); // Регистр предварительной загрузки в TIMx_CCR1 OFF
SET_BIT(TIM14->CCER,TIM_CCER_CC1E); // включение выхода захвата/сравнения 1.
//_____
//           Биты  CC1P и CC1NP работают в паре, определяя режим захвата таймера по фронтам
//_____
// ---------- ТАК ПО ПАДАЮЩЕМУ ФРОНТУ ----------
SET_BIT(TIM14->CCER,TIM_CCER_CC1P);     // 0b10
CLEAR_BIT(TIM14->CCER,TIM_CCER_CC1NP); //  0b10
// ---------- ТАК ПО НАРАСТАЮЩЕМУ ФРОНТУ ----------
//CLEAR_BIT(TIM14->CCER,TIM_CCER_CC1P);   //  0b00
//CLEAR_BIT(TIM14->CCER,TIM_CCER_CC1NP);  //  0b00
// ---------- ТАК ПО ОБОИМ ФРОНТАМ ----------
//SET_BIT(TIM14->CCER,TIM_CCER_CC1P);   //  0b11
//SET_BIT(TIM14->CCER,TIM_CCER_CC1NP);  //  0b11
//_____
MODIFY_REG(TIM14->OR, TIM14_OR_TI1_RMP_Msk, 0b00 << TIM14_OR_TI1_RMP_Pos); // Канал 1 TIM14 альтернативное назначение функций
MODIFY_REG(TIM14->CCMR1, TIM_CCMR1_CC1S_Msk, 0b01 << TIM_CCMR1_CC1S_Pos); // Канал CC1 настроен как вход, IC1 сопоставлен с TI1
CLEAR_BIT(TIM14->DIER, TIM_DIER_UIE); // Прерывание обновления OFF
SET_BIT(TIM14->DIER, TIM_DIER_CC1IE); // Прерывание CC1 ON

TIM14->PSC = 48 - 1; // 1 тик микросек.
TIM3->ARR = 65535 - 1;
NVIC_EnableIRQ(TIM14_IRQn); // Разрешить прерывания
SET_BIT(TIM14->CR1,TIM_CR1_CEN); // Счётчик включен
}


Код:
void TIM14_IRQHandler(void){
   if(READ_BIT(TIM14->SR,TIM_SR_CC1IF) != RESET){  //  Проверить и сбросить флаг!!!
      CLEAR_BIT(TIM14->SR,TIM_SR_CC1IF);     //    Сбросить флаг!!!
      test++;
   }
}


Добрый день форумчане!
Есть такой вопрос.
Нужно измерять длительность сигнала, для декодирования ИК от ПДУ.
Решил использовать для этой задачи таймер по захвату фронта. ( падающего )
Открыл референс, там посмотрел-полистал вроде бы там описано как это всё дело включить.
В итоге всегда попадаю в обработчик постоянно и кручусь там. Установил туа тестовую переменную
и в отладке чётко видно что всё крутится там и переменная всегда инкрементируется но при этом на
входе PA7 ни чего нет, генератор сигналов не подключён. Я прошу помочь, посмотрите на настройки и укажите
на ошибку в настройках. Ибо не вижу где проблема, не могу сам найти где не так настроил.
Спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 TIM14
СообщениеДобавлено: Вт окт 14, 2025 10:00:14 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Пн сен 15, 2025 08:43:23
Сообщений: 214
Рейтинг сообщения: 0
Magick numbers - зло! Как без документации понять, правильно ли таймер настроен?
Нужно выбирать режим захвата. Тогда прерывание будет правильным, а в CCx поместится количество тиков от старта периода до внешнего события.
А пока можно в CC1R поместить значение больше ARR. И прерывания прекратятся.

_________________
Windows must die! And the users of this crap should either become smarter or become janitors.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 TIM14
СообщениеДобавлено: Вт окт 14, 2025 11:32:17 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 452
Рейтинг сообщения: 0
при этом на входе PA7 ни чего нет, генератор сигналов не подключён.

Если на входе ничего нет, то почему вы подтяжку выключили?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 TIM14
СообщениеДобавлено: Вт окт 14, 2025 18:34:25 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
aleksey chilov писал(а):
Решил использовать для этой задачи таймер по захвату фронта. ( падающего )
Можно и ШИМ захват http://we.easyelectronics.ru/STM32/ir-u ... ast-1.html
DMA прикрутить и выход по таймауту по 3 каналу таймера.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 TIM14
СообщениеДобавлено: Вт окт 14, 2025 18:58:50 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 185
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1609
Рейтинг сообщения: 0
Нужно измерять длительность сигнала, для декодирования ИК от ПДУ.
Решил использовать для этой задачи таймер по захвату фронта. ( падающего )
Для декодирования посылок ИК-пульта нужно захватывать как фронт так и спад.

Я прошу помочь, посмотрите на настройки и укажите
на ошибку в настройках. Ибо не вижу где проблема, не могу сам найти где не так настроил.
Вы ошиблись форумом. Вам нужно на форум медиумов и прорицателей. Которые угадают - что скрывается за всеми этими вашими MODIFY_REG, CLEAR_BIT и т.п.? И всеми остальлными символическими именами. Определения которых вы "забыли" привести.
Здесь все медиумы в отпусках.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 TIM14
СообщениеДобавлено: Ср окт 15, 2025 08:13:05 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 27, 2022 09:38:17
Сообщений: 164
Рейтинг сообщения: 0
Извиняюсь. Все те формы записи это библиотека CMSIS
Ну извините, не я это всё придумывал это уже вопросы к производителю софта.
И самих контролеров STM32.
Какие синонимы прописали в библиотеке такие и пишу.


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

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


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

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


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

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


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