Top.Mail.Ru

«Наш трамвай без рельсов и звонков…».

В прошлом месяце в столице произошло знаковое событие - был запущен первый регулярный маршрут московского речного электротранспорта от Киевского вокзала до причала на Шелепихинской набережной. Его длина составила более 6.5 км. Перевозки выполняются электросудами серии Ecobus, пришедшими на смену легендарным пароходам серии «Москвич», и получившими имена в честь московских рек: Синичка, Сетунь, Пресня, Филька, Сходня, ...

Продолжить чтение

АО «НИИЭТ» приступил к разработке серии микроконтроллеров для гражданского рынка.

Воронежский НИИ электронной техники приступил к реализации нового комплексного проекта «Разработка и освоение в серийном производстве серии 32-разрядных микроконтроллеров» с использованием программы субсидирования в соответствии с постановлением Правительства РФ от 24 июля 2021 года № 1252. В рамках проекта разрабатывается четыре микроконтроллера на основе открытой архитектуры RISC‑V, которые перекрывают широкий спектр применений – от аппаратуры АСУ ТП до ...

Продолжить чтение

Stm32. Переходим на современный C++. Часть 8. Таймеры. Режим энкодера. Режимы Master/Slave.

Вступление. В завершение изучения таймеров, в частности таймеров общего назначения, рассмотрим оставшийся без внимания блок - Trigger controller: Таймер в режиме ведомого. Таймеры также могут работать в режиме ведомого с реакцией на внешнее событие, задаваемой битами SMS регистра TIMx_SMCR: 100 (Reset Mode): режим сброса, выбранный триггер сбрасывает счетчик; 101 (Gated Mode): режима шлюза, счетчик включен только при высоком ...

Продолжить чтение

Stm32. Переходим на современный C++. Часть 7. Таймеры общего назначения и модуль захвата.

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

Продолжить чтение

Stm32. Переходим на современный C++. Часть 6. Таймеры общего назначения и модуль сравнения.

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

Продолжить чтение

Stm32. Переходим на современный C++. Часть 5. Система тактирования.

Вступление. На прошлом занятии мы начали рассматривать таймеры, а именно разобрали приемы работы с базовым таймером. Наименьший период генерации события переполнения, который можно получить, равен 1/8 мкс (при частоте тактирования таймера 8 МГц и нулевых значениях регистров предделителя и автоперезагрузки). Однако даже в такой конфигурации невозможно реализовать хоть какой-нибудь обработчик прерывания, который бы выполнялся с ...

Продолжить чтение

Stm32. Переходим на современный C++. Часть 4. Таймеры. Базовый таймер.

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

Продолжить чтение

Stm32. Переходим на современный C++. Часть 3. Виртуальные порты ввода-вывода.

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

Продолжить чтение

Stm32. Переходим на современный C++. Часть 2. Работа с портами ввода-вывода.

Вступление. На прошлом занятии мы развернули рабочее пространство, а также собрали первый проект из готового исходника. Сейчас предлагается рассмотреть возможности по управлению портами и линиями ввода-вывода, предоставляемые библиотекой. Все классы для работы с GPIO доступны в заголовочных файлах <ioports.h> и <iopins.h>. Интерфейс GPIO. Библиотека Zhele предоставляет два основных семейства классов для работы с портами и линиями ввода-вывода: PortX, где X - ...

Продолжить чтение

Stm32. Переходим на современный C++. Часть 1. Настройка рабочего пространства.

Вступление. В сети появляется всё больше материалов, посвященных применению языка C++ для программирования микроконтроллеров. Являясь сторонником этого направления, хочу поделиться теми знаниями и умениями, которые получил, в виде цикла статей-уроков с рассмотрением вопросов разработки для Stm32 на современном языке C++ с применением разрабатываемой мною библиотеки (или фреймворка) Zhele. Я не являюсь профессиональным разработчиком в принципе, с ...

Продолжить чтение