Наш магазин на eBay Наш магазин на AliExpress Наш канал в telegram

Рубрика «Теория»

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 10. CMSIS, использование стандартных библиотек и функций.

Стандарт CMSIS Подключение к проекту модулей и библиотек CMSIS RTE_Device.h — конфигурирование контроллера startup_stm32f10x_md.s — таблица векторов, заглушки обработчиков, код запуска system_stm32f10x.c — настройка системы тактирования stm32f10x.h — определения имён областей, регистров, битов, констант… Пример использования CMSIS в программах Стандарт CMSIS К этому моменту мы уже можем с нуля накодить для STM32 на асме какой-нибудь …

Неоднозначность регистрации временных интервалов при переполнении таймера-счетчика МК.

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

Инструкция по созданию Telegram ботов. Часть 4. Прикручиваем MySQL к чат-боту для Telegram на php (webhook)

Итак, сегодня мы попробуем несколько увеличить функционал нашего простейшего чат-бота, а именно: прикрутим к нему базу данных MySQL, в которой будем хранить список подключавшихся к боту пользователей и информацию о них, а так же добавим возможность этих пользователей забанивать и разбанивать. Первым делом создаём базу данных (пусть она называется, скажем, MYBASE) и дописываем в наш …

Инструкция по созданию Telegram ботов. Часть 3. Пишем простого чат-бота для Telegram на чистом php (webhook)

Создавать в Telegram аккаунты ботов мы уже научились (в предыдущей части), пора чего-нибудь накодить. Сегодня я покажу как создать простого чат-бота для Telegram на чистом, незамутнённом php, без всяких дополнительных библиотек и фреймворков. Такой чат-бот может использоваться, например, для организации чата на сайте или в интернет-магазине. При этом для связи с Telegram наш бот будет …

Инструкция по созданию Telegram ботов. Часть 2. Регистрация аккаунтов Telegram ботов в картинках

Регистрацией новых, равно как и редактированием существующих, аккаунтов ботов занимается главный бот, именуемый BotFather. Зарегистрировать через него бота можно следующим образом: Заходим в Telegram, находим через поиск бота @BotFather и открываем чат с ним, нажав внизу экрана кнопку Start. Запускаем процедуру регистрации нового бота, для чего набираем в чате с @BotFather команду /newbot Далее, следуя …

Инструкция по созданию Telegram ботов. Часть 1. Что такое Telegram боты и как они работают

Одна из самых крутых фишек мессенджера Telegram — это боты. О них сегодня и пойдёт речь. В мессенджере Telegram, есть особые аккаунты, операторами которых могут являться не люди, а специальным образом написанные программы, расположенные на сторонних ресурсах (не на серверах Telegram). Эти программы-операторы называются ботами. Боты могут получать адресованные им сообщения, а также генерировать и …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 9. Система прерываний

Введение Как настроить и включить прерывание Как происходит вход в прерывание? Сохранение контекста Специальные значения EXC_RETURN Как выйти из прерывания? Восстановление контекста Пример программы с прерыванием Введение В предыдущей части мы говорили, что группы инструкций, выполняющие какую-либо элементарную задачу, можно оформлять в виде процедур и потом вызывать их в программе каждый раз, когда они нам …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 8. Процедуры на асcемблере для STM32

Для уменьшения размеров кода и улучшения его читабельности, группы инструкций, выполняющие какую-либо элементарную задачу, могут быть оформлены в виде «процедур». Удобство процедур в том, что мы можем обращаться к ним из любого места программы, любое число раз. Объявляются процедуры с помощью ключевых слов PROC / ENDP или FUNCTION / ENDFUNC. Keil-овский ассемблер для ARM-ов не …

Интерфейс USB. Часть 9. Программная реализация LS устройства USB. Продолжаем разбираться с принятыми пакетами.

Сейчас, когда мы научились отправлять хосту любые произвольные данные из буфера, вернёмся немного назад, к седьмой части этой бесконечной статьи. В седьмой части мы остановились на том, что научились определять три типа пакетов, которые предназначены нам и на которые нам нужно что-то отвечать. Теперь, когда мы умеем что-то отвечать в принципе, можно думать, что отвечать …

Интерфейс USB. Часть 8. Программная реализация LS устройства USB.
Передача по USB произвольного буфера и пакетов подтверждения

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