tonyk, Измерительный осцилл непростой проект, двигаемся малыми шажками. Именно для измерения низких частот и нужен период. Н743 имеет хорошие оперы на борту с калибровкой. • 2× operational amplifiers (7.3 MHz bandwidth)
Измерительный осцилл кроме разных напряжений должен измерять частоты и периоды. В Н743 есть таймер высокого разрешения 2nS и возможность CubeIDE в один клик настроить измерение параметров ШИМ сигнала, длит. импульса и период. Параллельно на другом таймере считаем импульсы за секунду для более точного измерения на высоких частотах.
HAL и скорость- вещи несовместимые. Как не столкнусь с ХАЛом, так постоянно вижу туеву хучу кода на все случаи жизни, особенно в обработчиках прерываний. Так что осваивай работу с периферией напрямую.
Только проблема в том, что возможность сделать в один клик тотально уничтожает три четверти возможностей периферии, сводя все к тупейшим вариантам использования. Это терпимо лишь для тех, кто ставит типовые и простые задачи.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
tonyk, HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_1); Так нельзя? Там же данные защелкнулись. CubeIDE(MX) настраивает работу таймеров на внутренних связях по железу.
Добавлено after 5 minutes 34 seconds: КРАМ, Как сделать в один клик тоже полезно знать, если читать и переводить 4000стр. даташита нет времени.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А их сразу все и не требуется читать. Задачи решают по частям, выстраивая их под требуемую периферию и ее особенности. Для того, чтобы работать с АЦП-ДМА, не требуется сильно вникать в интерфейсы экранной графики. Кстати, нажимая на кнопки конфигуратора, тоже нужно понимать к чему это приведет... Такшта даташит придется таки читать. Не вникал в фичи конкретно Н7, но нынче полно МК с разрешением быстрого ШИМ от 250 пс (0,25 нс) и даже менее. При относительно низкой частоте накачки самого МК.
Кстати, в CubeIDE для прерываний создается отдельный файл типа stm32хxx_it.c и там можно обрабатывать прерывания. Зачем еще тащить обработчик в main.c?
И что? Создать отдельный файл можно вообще для одной функции, если в этом будет хоть какой то смысл. Разговор шел о том, что работа через колбэки и кучу универсальных проверок в прерываниях тупо тормозят исполнение кода настолько, что прерывания теряют свой изначальный смысл инструмента реального времени.
linkov1959, я не пользуюсь ХАЛом, а если пользуюсь, то как затычкой-времянкой, когда нет времени долго вникать, а нужен результат здесь и сейчас. Потом переписываю под свою задачу без всяких ХАЛов. А уж если задача изначально требует выжимать из "железа" все соки, то тут хошь-не-хошь, но вникай в работу "железа". Кстати, на ХАЛ мурзилка нифига не маленькая, например, UM1095- это описание HAL на F7 размером чуть меньше 2000 страниц.
Я не знаю что вы имеете ввиду, но захват (Input Capture) в этих шимах тоже имеется. Хотя понятно, что методы высокого разрешения для пикосекундного Output Compare не применимы для реального счета в Input Capture. Однако и 2 нс это огромный пласт МК с гораздо меньшими тактовыми частотами, нежели Н7. Обычно все эти ШИМы работают на своем осцилляторном домене.
tonyk, я сначала отрабатываю проекты на f103 по готовым примерам, а потом переношу на h743 и HAL это делает.
КРАМ тебе верно сказал, что ХАЛ не способен переносить проекты один-в-один. Сам посуди, в F1 и F7, например, разные UART, поэтому то, что делается в F7 аппаратно невозможно сделать в F1. То есть код, работающий на F1, не сможет использовать возможности UART, установленный в F7. Обрати внимание на название файлов в ХАЛ. Файлы с суффиксом "_ex" как раз и содержат эти специфические функции. ИМХО, СТМ неправильно сделала ХАЛ. Например, одинаковые UART в F0 и F7, F1 и F4. Вот и надо быдло группировать периферию по версиям. В F1 и H7 разные АЦП, поэтому невозможно сделать перенос кода. Сделать тупую оцифровку одного инжектированного канал- да, можно. А вот, например, оцифровать 2 диффканала с автоматическим смещением и усреднением по 4 точкам и записью в мамять через DMA, например, на Н7 можно, а вот на F1- нельзя, нет у него таких функциональных блоков.
tonyk, один в один не переносится, но я стараюсь по мере сил. Хотел запустить HTIM по быстрому, но придется учить матчасть, но даташит читать не буду - языкам не обучен.
Этот HTIM больше для ШИМ придуман, частотомер на TIM1 и TIM2 сделал, работает отлично до 250Мгц. Очень легко в кубе настраивать синхронно два таймера. 1 таймер запускает 2 таймер, который по счетному входу считает, пока не переполнится 1 таймер, настроенный на 1 импульс 1сек. В колбеке 1 таймера выводится счетчик 2 таймера, как частота и запускается снова. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim == &htim1) { count = __HAL_TIM_GET_COUNTER(&htim2)*8; // значение в счётчике таймера №2, вывод инфы.
HAL_TIM_Base_Stop_IT(&htim1);
// обнуляем счётчик и рестартуем таймер №1 // __HAL_TIM_SET_COUNTER(&htim2, 0x0000);
} } } Таймер обнуляем не в колбеке, а по железу настройками в кубе. https://drive.google.com/file/d/1O8KG6a ... sp=sharing Итого - с помощью куба и нескольких строчек кода получаем полнофункциональный частотомер. Частоту считает Tim2, период и импульс Tim5, они 32бит. На LCD выводится частота ВЧ, период(частота НЧ), ширина импульса. Точность превосходная.
240265, отрабатывал код на Tim2, но тот занят будет на ВЧ частоту. Тим17 дает меандр на пинА1, Тим1 дает ШИМ - это всё для отладки. Для частоты и периода достаточно по одному таймеру, можно и один на всё, но идея иметь два входа по ВЧ и НЧ, там разная схемотехника входного усилителя-формирователя. Думаю создать отдельную тему по существу дела.
Посмотрите на какой шине висит GPIO и какая у неё частота. Сколько шинных интерконнектов нужно пройти процессору чтобы до этой шины добраться. И оптимизацию на скорость включить. С оптимизацией что-то такое должно быть
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения