Dyikot, Что бы задать частоту преобразований. АЦП может работать в режиме постоянного преобразования (continuous conversion mode), тогда частота семплирования определяется частотой работы АЦП и временем семплирования, в этом режиме точно частоту задать не получится, но в целом в большинстве случаев можно и этот режим использовать.
Что бы точно настроить сколько раз в секунду снимать значения с АЦП, надо запускать преобразования в точные моменты времени, можно это сделать через
а) Прерывания (что ты и реализовал),
б) Либо что бы преобразования запускались сами в нужный момент времени от событий таймера.
Первый способ при большой частоте сильно нагружает контроллер постоянными вызовами прерываний, халовской лабудой на их обработку и запуски АЦП с DMA, происходит это до тех пор, пока контроллер не начинает тратить 100% времени на бессмысленную долбежку прерываний. Второй способ делает то же самое, но DMA запускается один раз, и до заполнения буфера не тратятся ограниченные вычислительные ресурсы
Dyikot,
HAL_TIM_PeriodElapsedCallback - высокоуровневый API, он хорош, если прерывания приходят не слишком часто, при периоде в 125мкс и частоте ядра 8МГц, прерывания приходят с периодом в 1000 тактов, это мало. Не надо пытаться запускать семплирование таким образом, микроконтроллер все время висит в прерываниях.
Как надо:
В основном цикле или по таймеру 2 запускаешь преобразование по DMA:
HAL_ADC_Start_DMA(&hadc1, adcBuffer, sizeof(adcBuffer)/sizeof(adcBuffer[0]));
В прерывании АЦП ставишь флаг, что буффер считан, что бы его дальше в главном цикле обрабатывать.
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
Порядок чтения:
Запустить таймер 3 без прерываний -> запустить преобразование АЦП по DMA -> дождаться флага окончания чтения DMA -> обработать -> повторить
pfg21, Производительность, требуемая даже для первой версии WiFi была на пределе возможностей 5В КМОП логики, не верю, что существовали процессоры для маршрутизаторов с пятивольновыми логическими уровнями, в 90х активно на более низкие напряжения переходили. Другое дело, то что чувствительным WiFi трактам требуется чистое питание, и при высыхании конденсаторов возросшие пульсации проходили через фильтры.
arhitektorDEATH, В твоем случае - термопаста. Пожалуй просто напишу ответ chatgpt:
Термоинтерфейс — это материал, используемый для улучшения теплообмена между двумя поверхностями, обычно между процессором (или другим нагревающимся компонентом) и радиатором. Его основная задача — заполнить микроскопические неровности на контактных поверхностях, чтобы обеспечить максимально эффективную передачу тепла.
Основные виды термоинтерфейсов:
Термопаста
Самый распространённый термоинтерфейс.
Имеет консистенцию густой пасты, легко наносится и равномерно распределяется. (от себя добавлю, что в ноутбуках используется термопаста с фазовым переходом)
Термопрокладки
Эластичные пластины, которые устанавливаются между компонентами.
Удобны для использования на компонентах с неровной или широкой поверхностью (например, чипы видеопамяти).
Не требуют точного нанесения, как термопаста, но имеют меньшею теплопроводность.
Жидкий металл
Очень эффективный термоинтерфейс, обладает высокой теплопроводностью.
Требует аккуратного использования, так как проводит электричество и может вызвать замыкание, если попадёт на контакты.
arhitektorDEATH, Ноутбук на гарантии? Тогда идти возвращать, это явно брак, пусть сами разбираются. Если нет - смена термоинтерфейса в теории должна решить проблему
Просто совпало. Да и в специализированных машинах стандарт не 12В, а зачем к обычным машинам подключать роутер, сообразить не могу. Если провайдерская инфраструктура не работает - ничего не сделать (разве что старлинк...).
Вряд ли вам тут помогут без скриншотов. Если уж задаете вопрос, потрудитесь зайти в пару игр и нажать printscreen. Попробуйте посмотреть свои же скришоты на другом устройстве (можно и на смартфоне, не важно), если эффект заметен, то дело не в мониторе.
Зачем такая морока обычному пользователю? Понятный - очень спорно. Гайдов нет, если сравнивать с вики арча, или сообществом бунты. При запуске браузера все преимущества производительности среды множатся на 0. В чем смысл свободы от системд? Не такой как все?
Я думаю на скрине видно, что используется всего 90мб. 256 мб - рекомендуемый объем, 128 - минимальный. В системе нет сторонних компонентов, требующих большего. Для теста дал 4gb, разницы нет.
Andrei1penguin1, Аккумулятор заряжается от контроллера заряда, это далеко не одно и то же, что и BMS. Например TP4056 - зарядник, успешно заряжающий аккумуляторы многих маломощных устройств с liion/lipo, но не является BMS. BMS (Battery Management System) обеспечивает балансировку аккумуляторов (если он 1, балансировать нечего), защиту от КЗ. Защита от перезаряда(не всегда) и переразряда обеспечивается как аварийная мера, ибо допускает глубокий разряд, при котором АКБ долго не проживет. Есть конечно и сложные системы, способные обеспечить контроль заряда, но как правило устанавливаются в сложные системы, типа электротранспорта.
Что там с apple не знаю, но вероятнее всего система не отличается: далеко не все смартфоны могут передавать звук сразу на 2 устройства, но проблем с совместимостью нет. В любом случае, с такими познаниями лучше выбрать что-то попроще, а не изобретать велосипед
Andrei1penguin1, Если ограничиться готовыми решениями, то только так: в одном наушнике 2 модуля, один принимает с устройства, второй отправляет сигнал второму наушнику. Однако в таком случае очень сильно теряется качество из-за преобразований. Защита от переразряда в готовых модулях уже встроена, а в самопальном через внутреннее опорное напряжение можно рассчитать питающее.
Да, конструкция проста, но почему же тогда TWS наушники появились гораздо позже гарнитур и беспроводных наушников, соединенных проводом?
Что бы точно настроить сколько раз в секунду снимать значения с АЦП, надо запускать преобразования в точные моменты времени, можно это сделать через
а) Прерывания (что ты и реализовал),
б) Либо что бы преобразования запускались сами в нужный момент времени от событий таймера.
Первый способ при большой частоте сильно нагружает контроллер постоянными вызовами прерываний, халовской лабудой на их обработку и запуски АЦП с DMA, происходит это до тех пор, пока контроллер не начинает тратить 100% времени на бессмысленную долбежку прерываний. Второй способ делает то же самое, но DMA запускается один раз, и до заполнения буфера не тратятся ограниченные вычислительные ресурсы