Обновить
223.74

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Период
Уровень сложности

Progress Bar для Сборки Программы

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.5K

Компиляцию большой программы можно сравнить с кипячением воды. Вы никогда не можете сказать сколько еще осталось времени до окончания процесса. Многим пользователям GUI‑IDE приходится страдать от того, что запустив сборку проекта приходится ждать окончания непредсказуемое время.

Однако эту проблему можно решить, если собирать код скриптами сборки. Достоинством сборки проекта из самостоятельно написанных скриптов является то, что в процесс сборки можно добавлять всяческие полезные механизмы. Вы программируете не только свою прошивку, но и процесс сборки самой прошивки. Здорово?

В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

Читать далее

Анализ модуля G-NiceRF RF4463PRO: производительность, сертификация, интеграция

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели6.9K

RF4463PRO, выпущенный компанией NiceRF Wireless Technology Co., Ltd., представляет собой высокопроизводительный беспроводной приемопередающий модуль субгигагерцового диапазона. Эта серия модулей доступна в различных версиях с рабочими частотными диапазонами, включая 150/315/433/470/868/915 МГц, для удовлетворения потребностей различных регионов и приложений.

Читать далее

Как избежать кошмара параллелизма в IoT: автоматы вместо потоков и корутин

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели5.5K

В статье рассматривается библиотека на C++, которая предназначена для реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о ней см. [1]). Для полного понимания материала рекомендуется ознакомиться с основами теории АП, представленной в статьях [2, 3, 4], Взаимосвязь машины Тьюринга с конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в контексте автоматного программирования анализируются в статьях [6–9]. Но в минимальном варианте достаточно даже общего представления о модели конечного автомата и принципах объектного программирования.

Читать далее

Прием и парсинг NMEA-данных от GPS-приемника

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.3K

Прием и парсинг NMEA-данных от GPS-приемника, а также, рассмотрение работы разных типов GPS (UART и RS-232): как правильно подключить модуль к микроконтроллеру STM32.

Читать далее

Надежное программирование — часть 3. Финал (2019)

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели2.8K

Немного рассуждений о языках программирования (ЯП) с уклоном на надежное и безопасное программирование.

Статья не публиковалась ранее, хотя была написана в 2019г, теперь можно смотреть как некую ретроспективу. Чем и воспользуюсь, вставляя замечания о былом по тексту (тег Upd).

Но тормозит развитие серии, ибо вышли уже 3 части и несколько переводов в тему: 

Читать далее

Утилита R

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.5K

В программировании часто приходится писать программные компоненты, которые, в общем очень похожи друг на друга по своей структуре и API.

В заметке я представил простую утилиту r.exe для авто-замены токенов в файлах и названиях файлов.

Читать далее

Рекомендации по выбору SCADA

Время на прочтение18 мин
Охват и читатели2.4K

Выбор SCADA системы определяет решение, которое скорее всего вы будете использовать в течение как минимум 10+ лет. Поэтому крайне важно понимать принципы выбора ПО. Предлагаем ознакомиться с мнением Роя Кока (Roy Kok) – инженера с более чем 30-летним опытом работы в области электротехники и промышленной автоматизации.

Читать далее

Функциональная безопасность и анализ риска, комментарии инженера (часть 1)

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели891

Что такое безопасность технологического процесса или технической системы (устройства), что такое риск и вообще зачем все это?

По анализу рисков и функциональной безопасности написано бесконечное количество статей (большая часть в переводе), брошюр, методичек и разнообразных презентаций.

В большинстве случаев этот материал носит научно-популярный характер, с огромным количеством терминов, аббревиатур, сокращений до трех букв, абстрактных рассуждений вперемешку с теорией вероятности, и для нормального инженера выглядит как полный бред. И в большинстве случаев это и есть полный бред. Трудно понять, как этот псевдо-научный поток теоретических рассуждений можно связать с реальным технологическим объектом, техническими устройствами, реакторами, колоннами, компрессорами, насосами, печами и т.д. Многие инженеры приходят к справедливому выводу – никак. И дело не в методах, методиках, ГОСТ-ах по анализу риска и функциональной безопасности, а в специалистах, которые не понимая реального смысла и целей этих методов, решение реальных задач заменяют процессом и процедурами, с формальным соблюдением отдельных пунктов методик, с безумными выводами, и своими безграмотными действиями полностью дискредитировали саму идею функциональной безопасности, основанной на оценке риска.

Данная статья, это попытка техническим инженерным языком объяснить подход к построению систем безопасности технологических объектов (технических устройств) на основе анализа риска и функциональной безопасности. В основу статьи положен собственный опыт участия в процедурах анализа рисков и построения функциональной безопасности, определения уровня SIL для контуров безопасности, формирования требований к техническому обслуживанию и периодичности испытаний систем противоаварийной защиты для сложных технологических установок переработки нефти. Статья полностью написана самостоятельно и не является переводом с англоязычных источников. Поскольку это собственный опыт, не буду утверждать, что все изложенное абсолютно правильно и объективно, возможны ошибки, недопонимание основополагающих положений стандартов, и вообще поверхностный и однобокий подход. Прошу понять и простить.

для тех, кому это интересно

Статический Анализ С-кода

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.2K

Существуют бесплатные статические анализаторы для Си кода. Среди них splint и cppcheck.

Статический анализатор - это такая консольная программа, которая проверяет исходные коды до компиляции. Своего рода автоматическая инспекция программ.

В этом тексте я представил инструкцию про то, как интегрировать статический анализ кода в общий скрипт сборки проекта.

Суть этой короткой заметки в том, чтобы показать, как просто и лаконично происходит подключение разнообразных статических анализаторов к проекту, который собран скриптами сборки GNU Make.

Читать далее

Рудирон — разработка ПО на языке С++ и дополнительные программные инструментальные средства

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели1.1K

Установка и использование программных средств для программирования и взаимодействия с контроллером «Рудирон».

Читать далее

Коммуникации ПЛК

Время на прочтение5 мин
Охват и читатели3.3K

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

Читать далее

Реализация поддержки кириллицы в терминале для МК AVR

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели778

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

Читать далее

КодоГенератор Линейных Отображений (как ускорить создание ASIC драйвера)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели3K

В программировании микроконтроллеров на Си часто приходится писать драйверы для умных и навороченных ASIC чипов с управлением по I2C/SPI/MDIO интерфейсам.

Обычно перед запуском эти чипы надо правильным образом сконфигурировать.

Такие чипы всегда оперируют с реальными физическими величинами. Одновременно с этим ячейки памяти этих ASIC чипов - дискретные, двоичные. Поэтому все производители микросхем кодируют эти переменные бинарными кодами разной разрядности.

В этом тексте я показал как можно делать интерпретаторы этих величин.

Читать далее

Ближайшие события

Подключаем модуль TM1638 к Arduino без библиотеки SPI

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Изначально поставка задачи была такой. У меня была в наличии плата TM1638. Нужно было научиться с ней работать (ну и проверить работоспособность самой платы) для того, чтобы использовать её в одном интересном проекте (о нём в другой раз). Под рукой оказалась платка Arduino Nano. Хотелось быстро отделаться проверить работу самой платы при помощи ардуиновской библиотеки SPI.h – не получилось. В результате проделанный объём работы вылился в эту заметку.

Читать далее

Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели13K

Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.

В этом тексте я покажу как можно проверить это изделие.

Читать далее

Можно ли запустить ембедед С-проект на базе РТОС в режиме симуляции под Windows?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.1K

Если у вас есть эмбедед(embedded) проект и он написан на С или на С++ вы можете попробовать запустить этот проект в режиме симуляции на десктопном ПК и даже под Windows, по крайней мере у нас это получилось.

Такая симуляция превращает десктопный ПК в специальное устройство при этом не отнимая у вашего ПК десктопных возможностей-функций, например для отладки вашего встроенного ПО, которое исполняется на ПК в режиме симуляции. Ну а возможности тестирования и диагностики вашего эмбедед проекта в режиме симуляции практически не ограничены.

Дисклеймер: поскольку проект все еще в работе и принадлежит компании мне приходится избегать некоторых специальных технических терминов и подменять их более общеупотребительными, чтобы не создать привязку к бренду или к имени компании. Также я излагаю только общую идею, которая достаточно сложна, чтобы кто-то мог эту идею легко использовать, хотя в принципе это возможно. Нам интересно есть ли у кого-то опыт в обозначенном техническом направлении и любой обмен таким опытом.

Читать далее

К вопросу о gcc в разрезе RISCV

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели3.9K

Разбирался тут на досуге с (относительно) новыми МК фирмы WCH с ядром RISCV (CH32V307FBP6) с целью осветить данный прибор, скачал рекомендованную среду разработки (mounriver) и на первом же примере наткнулся на совершенно неожиданную вещь. Пример совершенно классический (нет, не мигание светодиодом и даже не приветствие миру) и посвящен использованию функции printf, вот он:

USART_Printf_Init(115200);
printf("SystemClk:%d\r\n"),SystemCoreClоck);
printf("This is printf example\r\n");

Пнп: Вы (программисты сайта) думайте, что хотите, но я считаю, что редактор у Вас ("вот это слово еще ...") омерзительный.

И что же могло удивить ?

Как Чинить Программные Ошибки?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.3K

В программировании микроконтроллеров регулярно приходится занимаются починкой bug(ов).

При этом все bug(и) уникальные. Поиск причины каждой конкретной осечки это скорее искусство. Починка программ сродни работы детектива.

Есть ли универсальные приемы того как искать причину программных ошибок?

Считаю, что да. Подробности в тексте...

Читать далее

ShIoTiny5 — Концепция и конфигурация

Время на прочтение16 мин
Охват и читатели1.8K

Продолжаем цикл статей о системе визуального программирования ShIotiny5.

Очень много вопросов задают по поводу того, как правильно «прошить» ESP-модуль прошивкой ShIoTiny5 и как его настроить.Это не удивительно, так как параметров конфигурации немало. Да и разных ESP-модулей — тоже.

Действительно, есть уже несколько статей по программированию устройств ShIoTiny5, но нет ни одной, где описаны способы установки ПО - программного обеспечения - ShIotiny5 на ESP-модуль и по его системным настройкам.

Также есть вопросы по поводу того, почему система ShIoTiny5 такая какая есть, а не «вот такая», какая она рисуется в фантазиях некоторых читателей.

Попробую ответить на эти вопросы.

В этой статье нет ничего о программировании ShIotiny5.
Она целиком посвящена прошивке программного обеспечения и его конфигурации. И немного - концепциям и идеям.

Как прошить и как настроить ShIoTiny5.

Разбор I2S трафика в программе Logic 2

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели6.1K

В этом тексте я написал инструкцию того как настроить логический анализатор Saleae производить автоматический синтаксический разбор трафика на шине I2S.

Читать далее

Вклад авторов