STM32 библиотека работы с ИК пультом (NEC)
Re: STM32 библиотека работы с ИК пультом (NEC)
Два канала для обоих фронтов импульсов, то есть один канал ловит восходящий фронт, второй - задний, в таком случае длительность равна |CCR2 - CCR1|. Конкретно в вашей реализации (у меня тоже так сделано) немного не так, первый канал является источником триггерного сигнала, по которому происходит сброс счетчика таймера, второй ловит конец импульса и в регистре CCR2 лежит результат (примерно так).
UPD: Мне вот ЭТА статья помогла разобраться, как на таймере сделать ИК-приемник.
UPD: Мне вот ЭТА статья помогла разобраться, как на таймере сделать ИК-приемник.
- Реклама
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="zenon",url="/forum/viewtopic.php?p=4358576#p4358576"]Для TIM14 и TIM16 у меня компилируется норм, даже не ругается не на что, но не заводится... наверное всё-так потому что одноканальные, как сказали выше, только не понял зачем два канала?[/uquote]
Регистры и константы из расчета на самый жирный таймер определены, если дополнительно ничего не проверять, то можно спокойно использовать регистры которых для конкретного таймера нет, все нормально скомпилируется
А два канала нужны потому что в режиме PWM input два регистра CCRx задействованы, для периода и скважности.
Регистры и константы из расчета на самый жирный таймер определены, если дополнительно ничего не проверять, то можно спокойно использовать регистры которых для конкретного таймера нет, все нормально скомпилируется
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="Reflector",url="/forum/viewtopic.php?p=4358514#p4358514"]Скомпилируется только если подставить подходящий таймер, канал и пин.[/uquote]
То-есть нужно угадывать чтоб оно просто собралось???
Добавлено after 5 minutes 56 seconds:
[uquote="zenon",url="/forum/viewtopic.php?p=4358576#p4358576"]Ноги поменять глянув в даташит вообще труда не составляет.[/uquote]
Приятно слышать. Однако отказываться от удобного инструмента всё-же не стоит.
То-есть нужно угадывать чтоб оно просто собралось???
Добавлено after 5 minutes 56 seconds:
[uquote="zenon",url="/forum/viewtopic.php?p=4358576#p4358576"]Ноги поменять глянув в даташит вообще труда не составляет.[/uquote]
Приятно слышать. Однако отказываться от удобного инструмента всё-же не стоит.
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="AVI-crak",url="/forum/viewtopic.php?p=4359121#p4359121"]То-есть нужно угадывать чтоб оно просто собралось???[/uquote]
Вот же пример zenon перед глазами, когда пытаются подставить TIM14/16 при этом код компилируется и не работает, а почему не понятно. Может нужен таймер минимум двухканальный, может пин неправильный или AF, может с частотами что-то не то или вообще припаял не туда... Это и есть гадание, а были бы там проверки, типа как у меня, то TIM14/16 сразу бы отпали, а кроме них там TIM17, с которым тоже не соберется, и рабочие 4-х канальные.
ps. Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?
Вот же пример zenon перед глазами, когда пытаются подставить TIM14/16 при этом код компилируется и не работает, а почему не понятно. Может нужен таймер минимум двухканальный, может пин неправильный или AF, может с частотами что-то не то или вообще припаял не туда... Это и есть гадание, а были бы там проверки, типа как у меня, то TIM14/16 сразу бы отпали, а кроме них там TIM17, с которым тоже не соберется, и рабочие 4-х канальные.
ps. Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?
Re: STM32 библиотека работы с ИК пультом (NEC)
...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.
А вот Куб как инструмент полезен для визуализации при подборе вариантов распиновок. И тем более, у него очень правильная идеология - генерация готового кода, не содержащего посторонних портянок. Кодогенератор просто не сгенерирует неподходящий код исходя из выбранных настроек, а разрешенные настройки сразу же отображаются. Именно такой принцип исповедуют матерые программисты издревле - "много раз повторяешь одни и те же операции в различных вариантах? создай кодогенератор".
А вот Куб как инструмент полезен для визуализации при подборе вариантов распиновок. И тем более, у него очень правильная идеология - генерация готового кода, не содержащего посторонних портянок. Кодогенератор просто не сгенерирует неподходящий код исходя из выбранных настроек, а разрешенные настройки сразу же отображаются. Именно такой принцип исповедуют матерые программисты издревле - "много раз повторяешь одни и те же операции в различных вариантах? создай кодогенератор".
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="AVI-crak",url="/forum/viewtopic.php?p=4359121#p4359121"]То-есть нужно угадывать чтоб оно просто собралось???[/uquote]Не обязательно. Я вот так стараюсь делать. Уже на этапе редактирование доступны только существующие в конкретном контроллере сущности.





Спойлер
- zenon
- Сверлит текстолит когтями
- Сообщения: 1274
- Зарегистрирован: Вт окт 23, 2007 10:01:42
- Откуда: Волгоград
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
Reflector, упс, тут я не в курсе на счёт F031 и TIM2. Вот его как раз ни в stm32f030x6.h, ни в stm32f030f4.pdf нет, ну собственно и не должно, или предлагаешь 031-ые хедеры подсунуть?
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="VladislavS",url="/forum/viewtopic.php?p=4359200#p4359200"]Я вот так стараюсь делать.[/uquote]
А внутри как, сами таймеры понятно, через ifdef TIMx using TimerX = ..., а вот каналы я что-то смог угадать
Как-то распарсили SVD-шки и нагенерировали из них код соответствующий?
А внутри как, сами таймеры понятно, через ifdef TIMx using TimerX = ..., а вот каналы я что-то смог угадать
Как-то распарсили SVD-шки и нагенерировали из них код соответствующий?
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 библиотека работы с ИК пультом (NEC)
azhel12, тут это злобный офф. Напишу в личку. Вкратце, всё на основе заголовочного файла контроллера, в нём всё необходимое есть.
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="zenon",url="/forum/viewtopic.php?p=4359204#p4359204"]или предлагаешь 031-ые хедеры подсунуть?[/uquote]
Я в подобных случаях сразу проект для F031 создаю.
Добавлено after 20 minutes 26 seconds:
[uquote="MLX90640",url="/forum/viewtopic.php?p=4359180#p4359180"]...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.[/uquote]
Если не компилируется, то получим ошибки говорящие о том, что таймеру не хватает SlaveCtrl или пин для конкретного канала указан не верно, а для AF не будет ошибки, он автоматически подставляется.
Я в подобных случаях сразу проект для F031 создаю.
Добавлено after 20 minutes 26 seconds:
[uquote="MLX90640",url="/forum/viewtopic.php?p=4359180#p4359180"]...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.[/uquote]
Если не компилируется, то получим ошибки говорящие о том, что таймеру не хватает SlaveCtrl или пин для конкретного канала указан не верно, а для AF не будет ошибки, он автоматически подставляется.
- zenon
- Сверлит текстолит когтями
- Сообщения: 1274
- Зарегистрирован: Вт окт 23, 2007 10:01:42
- Откуда: Волгоград
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.
Ну и в инит:
... и вы же посмотрите на эту ять - работает. 
Спасибо!
ы. А раз пошла такая гульба - случаем нет ли у 031-го в 32-х ногом теле недокументированная возможность подключить внешнюю опору?
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.
Ну и в инит:
Код: Выделить всё
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= _VAL2FLD(GPIO_MODER_MODER0, 2);
GPIOA->AFR[0] |= _VAL2FLD(GPIO_AFRL_AFSEL0, 2);
Спасибо!
ы. А раз пошла такая гульба - случаем нет ли у 031-го в 32-х ногом теле недокументированная возможность подключить внешнюю опору?
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="Reflector",url="/forum/viewtopic.php?p=4359148#p4359148"]Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?[/uquote]
А есть ли где сводная таблица таких "недокументированных возможностей"? Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали, и эта USB там работала! Здесь вот у человека "недокументированный" таймер начал ШИМ выдавать...
Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??
А есть ли где сводная таблица таких "недокументированных возможностей"? Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали, и эта USB там работала! Здесь вот у человека "недокументированный" таймер начал ШИМ выдавать...
Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4359375#p4359375"]Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали[/uquote]Таки не F100, а F102.
Re: STM32 библиотека работы с ИК пультом (NEC)
F101, У F102 и так USB есть по документации. А F100 у меня и на 72MHz не работал.
Добавлено after 2 minutes 30 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4359375#p4359375"]Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??[/uquote]
Если прям вся партия не работает, значит китайцы клон сделали, без всего лишнего
Добавлено after 2 minutes 30 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4359375#p4359375"]Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??[/uquote]
Если прям вся партия не работает, значит китайцы клон сделали, без всего лишнего
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="zenon",url="/forum/viewtopic.php?p=4359358#p4359358"]Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.[/uquote]
Внезапно есть.
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.[/uquote]
Внезапно есть.
- zenon
- Сверлит текстолит когтями
- Сообщения: 1274
- Зарегистрирован: Вт окт 23, 2007 10:01:42
- Откуда: Волгоград
- Контактная информация:
Re: STM32 библиотека работы с ИК пультом (NEC)
Изумительно выходит в кубе есть, в мануалах - нет.
Или считать TIM2_CH1 = TIM2_CH1_ETR? (собственно я так и сделал).
Надо ещё в reference глянуть.
Или считать TIM2_CH1 = TIM2_CH1_ETR? (собственно я так и сделал).
Надо ещё в reference глянуть.
- Вложения
-
- tim2_ch1_pdf-2.jpg
- (137.58 КБ) 88 скачиваний
-
- tim2_ch1_pdf-1.jpg
- (138.01 КБ) 83 скачивания
Re: STM32 библиотека работы с ИК пультом (NEC)
[uquote="zenon",url="/forum/viewtopic.php?p=4359444#p4359444"]Или считать TIM2_CH1 = TIM2_CH1_ETR?[/uquote]TIM2_CH1_ETR означает TIM2_CH1 и TIM2_ETR, просто они на одном AF висят, а могут и на разных.
Re: STM32 библиотека работы с ИК пультом (NEC)
Всем привет. Помогите пожалуйста осилить тему ИК приемника. Имеется CH32v003f4p6
Неполучается сделать то ли инициализацию таймера, то ли захват импульсов.
Приведенные примеры в ветке или приводят к зависанию мк или просто не работают
Неполучается сделать то ли инициализацию таймера, то ли захват импульсов.
Приведенные примеры в ветке или приводят к зависанию мк или просто не работают


