STM32 библиотека работы с ИК пультом (NEC)

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
azhel12
Встал на лапы
Сообщения: 145
Зарегистрирован: Пн апр 02, 2012 15:56:23

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение azhel12 »

Два канала для обоих фронтов импульсов, то есть один канал ловит восходящий фронт, второй - задний, в таком случае длительность равна |CCR2 - CCR1|. Конкретно в вашей реализации (у меня тоже так сделано) немного не так, первый канал является источником триггерного сигнала, по которому происходит сброс счетчика таймера, второй ловит конец импульса и в регистре CCR2 лежит результат (примерно так).

UPD: Мне вот ЭТА статья помогла разобраться, как на таймере сделать ИК-приемник.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Reflector »

[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)

Сообщение AVI-crak »

[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]
Приятно слышать. Однако отказываться от удобного инструмента всё-же не стоит.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Reflector »

[uquote="AVI-crak",url="/forum/viewtopic.php?p=4359121#p4359121"]То-есть нужно угадывать чтоб оно просто собралось???[/uquote]
Вот же пример zenon перед глазами, когда пытаются подставить TIM14/16 при этом код компилируется и не работает, а почему не понятно. Может нужен таймер минимум двухканальный, может пин неправильный или AF, может с частотами что-то не то или вообще припаял не туда... Это и есть гадание, а были бы там проверки, типа как у меня, то TIM14/16 сразу бы отпали, а кроме них там TIM17, с которым тоже не соберется, и рабочие 4-х канальные.

ps. Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
MLX90640
Опытный кот
Сообщения: 848
Зарегистрирован: Ср авг 03, 2022 05:22:56

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение MLX90640 »

...а потом гадать, почему же не скомпилировалось? Н-да, те же яйки, но с другой стороны. Один фик - в мануал смотреть.
А вот Куб как инструмент полезен для визуализации при подборе вариантов распиновок. И тем более, у него очень правильная идеология - генерация готового кода, не содержащего посторонних портянок. Кодогенератор просто не сгенерирует неподходящий код исходя из выбранных настроек, а разрешенные настройки сразу же отображаются. Именно такой принцип исповедуют матерые программисты издревле - "много раз повторяешь одни и те же операции в различных вариантах? создай кодогенератор".
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение VladislavS »

[uquote="AVI-crak",url="/forum/viewtopic.php?p=4359121#p4359121"]То-есть нужно угадывать чтоб оно просто собралось???[/uquote]Не обязательно. Я вот так стараюсь делать. Уже на этапе редактирование доступны только существующие в конкретном контроллере сущности.
СпойлерИзображение

Изображение

Изображение

Изображение

Изображение
tm1.png
(20 КБ) 571 скачивание
tm2.png
(12 КБ) 569 скачиваний
tm3.png
(25.1 КБ) 574 скачивания
tm4.png
(18.33 КБ) 571 скачивание
tm5.png
(8.85 КБ) 562 скачивания
Реклама
Аватара пользователя
zenon
Сверлит текстолит когтями
Сообщения: 1274
Зарегистрирован: Вт окт 23, 2007 10:01:42
Откуда: Волгоград
Контактная информация:

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение zenon »

Reflector, упс, тут я не в курсе на счёт F031 и TIM2. Вот его как раз ни в stm32f030x6.h, ни в stm32f030f4.pdf нет, ну собственно и не должно, или предлагаешь 031-ые хедеры подсунуть?
Аватара пользователя
azhel12
Встал на лапы
Сообщения: 145
Зарегистрирован: Пн апр 02, 2012 15:56:23

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение azhel12 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4359200#p4359200"]Я вот так стараюсь делать.[/uquote]
А внутри как, сами таймеры понятно, через ifdef TIMx using TimerX = ..., а вот каналы я что-то смог угадать :(

Как-то распарсили SVD-шки и нагенерировали из них код соответствующий?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение VladislavS »

azhel12, тут это злобный офф. Напишу в личку. Вкратце, всё на основе заголовочного файла контроллера, в нём всё необходимое есть.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Reflector »

[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 не будет ошибки, он автоматически подставляется.
Аватара пользователя
zenon
Сверлит текстолит когтями
Сообщения: 1274
Зарегистрирован: Вт окт 23, 2007 10:01:42
Откуда: Волгоград
Контактная информация:

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение zenon »

Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал 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)

Сообщение Eddy_Em »

[uquote="Reflector",url="/forum/viewtopic.php?p=4359148#p4359148"]Zenon, ты же в курсе, что у F030K6T6 есть TIM2 поскольку по факту это F031?[/uquote]
А есть ли где сводная таблица таких "недокументированных возможностей"? Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали, и эта USB там работала! Здесь вот у человека "недокументированный" таймер начал ШИМ выдавать...
Ну и интересно, насколько можно полагаться на эти "недокументированные возможности"? А то вдруг - бац, и партия, где все это не работает??
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4359375#p4359375"]Скажем, те же F100, у которых как бы нет USB, китайцы отлично в st-linkv2 пихали[/uquote]Таки не F100, а F102.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Reflector »

F101, У F102 и так USB есть по документации. А F100 у меня и на 72MHz не работал.

Добавлено 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)

Сообщение AVI-crak »

[uquote="zenon",url="/forum/viewtopic.php?p=4359358#p4359358"]Во блин как, создал проект для F031K6 (stm32f031x6.h).
Поискал TIM2_CH1... нету, есть TIM2_CH1_ETR на PA0, ну пусть думаю будет так.[/uquote]
Внезапно есть.
Temp.jpg
(193.23 КБ) 123 скачивания
Аватара пользователя
zenon
Сверлит текстолит когтями
Сообщения: 1274
Зарегистрирован: Вт окт 23, 2007 10:01:42
Откуда: Волгоград
Контактная информация:

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение zenon »

Изумительно выходит в кубе есть, в мануалах - нет.
Или считать TIM2_CH1 = TIM2_CH1_ETR? (собственно я так и сделал).
Надо ещё в reference глянуть.
Вложения
tim2_ch1_pdf-2.jpg
(137.58 КБ) 88 скачиваний
tim2_ch1_pdf-1.jpg
(138.01 КБ) 83 скачивания
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Reflector »

[uquote="zenon",url="/forum/viewtopic.php?p=4359444#p4359444"]Или считать TIM2_CH1 = TIM2_CH1_ETR?[/uquote]TIM2_CH1_ETR означает TIM2_CH1 и TIM2_ETR, просто они на одном AF висят, а могут и на разных.
Aspid2
Родился
Сообщения: 1
Зарегистрирован: Ср сен 04, 2024 19:07:56

Re: STM32 библиотека работы с ИК пультом (NEC)

Сообщение Aspid2 »

Всем привет. Помогите пожалуйста осилить тему ИК приемника. Имеется CH32v003f4p6
Неполучается сделать то ли инициализацию таймера, то ли захват импульсов.
Приведенные примеры в ветке или приводят к зависанию мк или просто не работают
Ответить

Вернуться в «ARM»