uint32_t freq = 40000; ок? первый таймер уже не использовать, плата в устройстВАХ уже готова и выводы сделаны для РА6 и РА7 раньше (ну и сейчас) был ШИМ на РА6 и он был mode 2, так что косяков с краями не было, РА7 был выводом общего назначения, теперь его решено использовать для вывода инвертированного сигнала
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
если он будет ВСЕГДА инверсным, то и проблемы не будет. вы же - то подключаете ноги к каналам таймера, то отключаете от каналов. мне кажется дело в этом.
у вашего камня map`ом подходящие линии TIM1 на эти ноги не коммутируются? я наизусть МК не знаю
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
отработав 4 периода, что заставило на второй линии "1" (как положено) вдруг кувыркнуться в "0", из того что вижу только : TIM3->CCER &= ~( TIM_CCER_CC1E | TIM_CCER_CC2E ); могу заподозрить.
TIM3->CCER &= ~( TIM_CCER_CC1E | TIM_CCER_CC2E ); могу заподозрить.
Да, именно это и выключает, а сам импульс формируется из задержки входа в прерывание.
Автору надо пояснить, что он хочет получить в конце. Что бы оба сигнала были в ноль, или один низкий, другой высокий? Так же не ясно, только первый импульс имеет неправильную длительность или все?
_________________ При решение наиболее сложных задач, большинство, как правило, ошибается...
очевидно что оба в ноль либо вы что-то недопонимаете, либо что-то путаете, но биты CC1E и CC2E регистра CCER подключают выходные контакты, мне нужен этот ШИМ снаружи, а не внутри если подключать пины этими битами раньше, то и уровень на пине будет высокий (для PWM mode 1) СРАЗУ! а не при старте таймера работать постоянно таймер не должен, в этом нет смысла (как и в сообщении про теневые регистры без указания их имен и вообще без полезной информации) таймер должен запуститься, отработать 4 (или сколько я потом захочу) раз и выключиться до следующего запуска. при этом на ногах РА6 и РА7 должны получиться ровные импульсы по 12.5 мкс (ШИМ 40 кГц со скважностью 50%) инвертированные друг к другу, в остальное время там должен быть НОЛЬ!
Я в баньку в 18 пойду в прерывании видно что я ногу убираю с таймера, но "всплеск" всё равно есть а когда ставлю - есть лишнее время в начале. и это легко доказать вставив задержку между установкой бита CCxE и запуском таймера и никакой гордыни нет, изначально задал эти вопросы видимо это невозможно без вмешательства ещё одного таймера
Заголовок сообщения: Re: stm32f103c8 Ровные края ШИМ
Добавлено: Вс фев 21, 2021 15:08:48
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
spongebob писал(а):
в прерывании видно что я ногу убираю с таймера, но "всплеск" всё равно есть
Вы не учитываете время от конца периода (события для прерывания) до "выключения ноги".
Я в STM'ах не силён, но мне кажется, что там в таймерах есть возможность его вырубить, дав отработать период до конца. Типа, с автоотключением счёта. Хотя, я могу ошибаться. Лениво RM'ы искать и читать
самому не доводилось решать эту задачку, ну как вариант: - переставить прерывание на регистр (чтоб попадать во второй полупериод), - в обработчике : поднимать OPM (CR1) и маскировать уже не нужный канал например этим OCхM (CCMRх) (100/101), - буферизация ARR уже есть, добавить для ccr OCхPE (CCMRх), - до старта записывать чуть меньшие aar и ccr, а стартовав вписать полноразмерные. или дополнить счет лишним периодом, но первый период спрятать, подключая каналы в работу по очереди в не активную фазу, хоть этим OCхM (CCMRх) . вроде должно получиться.
изначально не прозвучало, что причина "неровности" понятна, поэтому я покумекал о причине за решение не думал, приемлемое ему решение я полагал автор придумает сам. как оно позже и получилось
"люди будущего" наверное будут программировать другие контроллеры и не прикасаясь к клаве
Заголовок сообщения: Re: stm32f103c8 Ровные края ШИМ
Добавлено: Пн фев 22, 2021 16:34:50
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:3 Медали: 1
Да... Вот такие люди бывают... Если у кого-то есть решение, то с ними должны поделиться. А если оно есть у них, то фигушки вам всем ... Как-то они называются, такие люди... Слово забыл... Как же его там .... А, эгоисты, вот ...
Ну да. Я просил помощи. Мне тут прилетело очень много "поддержки". Я сделал сам, с чего вдруг я должен этой информацией делиться? Кому понадобится - спросите, я обязательно напишу. И напишу не просто слова, а КОД. Либо имена регистров и их биты. Но если я не знаю - я не лезу.
Когда я игрался с WS2815, обнаружил, что нужно либо добавлять в конце буфера лишний нулевой байт, чтобы передать его по DMA, либо же, если работать честно, использовать грязный хак (т.к. по-человечески надо было бы заводить в прерывании по DMA transfer complete прерывание на CC1, но на больших скоростях оно тупо не успевает отработать).
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Заголовок сообщения: Re: stm32f103c8 Ровные края ШИМ
Добавлено: Пн апр 19, 2021 19:18:32
Друг Кота
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4470 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
В некоторых таймерах STMки есть так называемый Repetition Counter. Тот вообще позволяет таймеру прощелкать заданное количество полных циклов и остановиться. И это аппаратно.
_________________ I am DX168B and this is my favourite forum on internet!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения