Решив использовать последние дни отпуска для приведения имеющихся у меня запасов электронных компанентов к некоторому подобию порядка я наткнулся на неизвестную михросхему SOT-23-6 с еле читаемой маркировкой.
Пользователь
Конструкторы, деструкторы, операторы — частые практики при программировании на C++
Данная статья служит шпаргалкой при написании классов с различными перегрузками операторов на примере тривиального класса строки (и ещё нескольких). Описанное здесь позволяет избежать копирования кода из одного конструктора или оператора в другой, что значительно снижает вероятность появления ошибок, но может привести к незначительному уменьшению производительности.
Logger C++
Этот проект представляет собой простую и гибкую библиотеку для логирования на C++. Библиотека поддерживает разные уровни логирования, форматирование сообщений и возможность записи логов в разные потоки.
Зачем Программисту Микроконтроллеров Диофантовы Уравнения
Школьные уроки математика не прошли даром.
Вот, настал день, когда впервые пришлось решить на работе Диофантовое уравнение.
Зачем Программисту Микроконтроллеров Численные Методы?
В программировании микроконтроллеров иногда прямо в коде приходится решать уравнения. Порой решение не получается выразить аналитически.
В математике бывают такие случаи, когда есть функция, которая просто выражается элементарными функциями. А вот обратную функцию выразить аналитически либо очень трудно, либо вообще невозможно.
В тексте показано как применять бинарный поиск для вычисления значений сложной тригонометрической обратной функций.
Зачем Программисту Микроконтроллеров Математическая Статистика? (или так ли хороши UWB трансиверы?)
Настал день, когда мне для работы программистом микроконтроллеров наконец пригодилась математическая статистика из ВУЗ(овского) курса по теории вероятностей.
Есть очень интересная технология для автоматического радиоизмерения расстояния. Технология основана на UWB трансиверах. Позволяет измерять время пролёта радиоволны.
В этом тексте написал как я исследовал измерения расстояния, при помощи ASICа UWB трансивера DWM1000.
Зачем программисту микроконтроллеров тригонометрия? (или Обзор Усилителя Звука из Apple AirTag)
На 12ом году опыта программирования микроконтроллеров мне наконец-то пригодилась школьная тригонометрия (6-класс).
Это настолько специфический случай, что я решил накропать про это заметку.
Когда Вам надо добавить в устройство звук, то можно воспользоваться микросхемой MAX98357A. Это по сути DAC у которого на входе I2S на выходе PWM.
В этой заметке я расскажу о своём опыте работы с усилителем MAX98357A и о том как его тестировать.
Зачем программисту микроконтроллеров комплексные числа (или обзор MEMS микрофона MP23DB01HPTR)
На 12ом году работы программистом-микроконтроллеров мне наконец-то пригодились комплексные числа из школьной математики. Где они тут нужны? Пояснение в тексте.
Есть много организаций, которые так или иначе разрабатывают и производят оборудование со звукоизлучателями. Очевидно, что между производством и продажей аудио оборудование надо тестировать.
В этом тексе я написал про то, как делать авто тест для звуковых систем.
Сканирование шины RS485
В электронике есть множество проводных полудуплексных асинхронных последовательных интерфейсов типа "общая шина". Это 1-Wire, RS485, 10BASE2(thin Ethernet), LIN, K-Line, CAN, I2C, MIL-STD-1553, ARINC 429.
Во всех этих shared-bus интерфейсах так или иначе возникает задача сканирования шины. То есть надо автоматически определить адреса устройств которые подключены к витой паре проводов.
В тексте представлен простой наивный алгоритм сканирования шины RS485. А также есть пояснение при чем тут отмычка.
NVRAM Поверх off-chip SPI-NOR Flash
Настал первый случай за 12 лет, когда в программировании микроконтроллеров понадобились бинарные деревья поиска.
В этом тексте поговорим о том как можно построить эффективную программную реализацию энергонезависимой Key-Value Map(ки) над дешевой SPI NOR Flash для микроконтроллерных проектов. Суть проста. Нужна NVRAM.
Вывод формулы для двустороннего определения дальности между UWB трансиверами
Настал третий за 12 лет случай, когда в профессии программист-микроконтроллеров понадобилось вспомнить школьную математику. В этом тексте я представил перевод AppNote(а) "The mathematics of two-way ranging". Также добавил свои комментарии в те места, которые неочевидны при первом прочтении.
Тема нужна для определения расстояния между двумя UWB радио трансиверами, которые могут определять моменты времени прихода и отправки радиоволны. Такое умеют делать UWB трансиверы, например чип DW1000 и DW3000.
Теория управления шаговым двигателем (или как вертеть PTZ камеру)
Настал тот редчайший случай, когда в работе программиста микроконтроллеров появилась нужда в знании математики и даже физики.
При управлении шаговыми двигателями важно решать кинематическую задачу. Правда по уровню сложности её можно отнести к школьной программе 6 класса.
Гибкие шестерни
В робототехнических проектах зачастую требуется использование разнообразных редукторов и передач. Слабым местом таких конструкций остаётся их относительная громоздкость и, соответственно, дороговизна.
В этой статье мы поговорим о том, как можно решить этот вопрос наиболее простым способом.
Зачем Программисту Микроконтроллеров Линейная Алгебра (или Как Найти Угол Между Векторами?)
В программировании микроконтроллеров часто возникает задача найти угол между векторами.
Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.
В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.
Обзор схемотехнических решений BMS для литиевых батарей
В этой статье представлен краткий обзор на специализированные микросхемы мониторинга и защиты для литиевых аккумуляторов. Давайте вместе попробуем разобраться, как максимально эффективно и безопасно использовать эти аккумуляторы в своих устройствах и какие схемы для этого лучше подойдут.
SDR приемник GPS на микроконтроллере
В этой статье я расскажу о том, как я делал самодельный SDR GPS приемник на микроконтроллере. SDR в данном случае означает, что приемник не содержит готовых GPS-модулей или специализированных микросхем для обработки GPS сигналов - вся обработка "сырых" данных выполняется в реальном времени на микроконтроллере (STM32 или ESP32).
Зачем я это сделал — просто Just for fun, плюс - получение опыта.
USB Type-C SWD Adapter
Прочитав статью Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB у меня сразу появилась идея, как сделать более правильно и удобнее (как хочешь втыкай кабель, по привычке и рабочий USB 2.0 порт). Получился вот такой вот адаптер для J-Link (для JTAG 10 pin):
От падений успешных компаний к индустриализации СССР: запускаем стратегическое планирование. Часть 1
19 ноября 1942 года началась операция "Уран": контрнаступление с целью окружения и уничтожения нацистской группировки около Сталинграда.
В итоге операции "Уран" войска стран "Оси" потеряли более 900 тысяч человек, а в Великой Отечественной Войне начался перелом. Перелом, который был бы невозможен, если бы СССР не был в состоянии произвести и поставить на фронт десятки тысяч артиллерийских орудий и миллионы снарядов к ним. Если бы СССР не развернул военную промышленность. Если бы уже для неё не была обеспечена ресурсная и кадровая база. Если бы не запустили в своё время I пятилетку и ГОЭЛРО, Их-то я и собираюсь разобрать в качестве выдающихся примеров стратегического планирования.
В качестве противовеса, как делать не нужно, я разбираю, из-за каких ошибок в стратегическом планировании некоторые крупные и успешные корпорации потеряли своё лидерство, а то и вовсе оказались на грани банкротства.
Первая часть.
Согласование волнового сопротивления на СВЧ
Иногда приходится наблюдать борьбу за каждую долю Ватта, а то и миллиВатта при первых запусках аналоговых СВЧ-схем. Когда разработчик делает плюхи раскатанным индием по поверхности печатной платы устройства. Либо просто недоумевают откуда возник повышенный уровень отражений на его входе, хотя покупные СВЧ-компоненты соединены между собой дорожками по 50 Ом, которые не предполагают сильных рассогласований. А если детально покопаться, то замечаешь, что в погоне за 50 Ом произошло пренебрежение, казалось бы, мелкими, но важными вещами, влияющим на качество согласования узлов между собой. Кто-то пытается досогласовывать вот так, по факту, хотя проще это сделать на этапе проектирования. Как можно было избежать подобных неприятностей?
Малоизвестные и интересные особенности C и C++
В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.
Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.
Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.
Информация
- В рейтинге
- 2 462-й
- Зарегистрирован
- Активность