Наш канал в telegram

Записи с меткой «контроллер»

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

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

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Приложение2 — таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103

Ниже представлена таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103 с размером флеша до 512 кб. Жёлтым цветом выделены системные исключения. Чтобы увидеть подробное описание — щёлкните по соответствующему акрониму. Для того, чтобы каждый раз не прописывать эту таблицу в своих проектах — просто скачайте архив с файлом stm32_IRQ_table.asm и вставляйте этот файл в свои …

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

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

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

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

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

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

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Приложение 1. Набор инструкций THUMB-2 и особенности их использования

Процессор Cortex-M3 использует набор инструкций, который называется THUMB-2. Этот набор представляет собой смесь 16-ти и 32-х битных команд. Ниже приводится таблица со списком и кратким описанием команд, а после неё даны некоторые пояснения относительно таблицы и описанных в ней команд. Ткнув по команде из таблицы можно перейти к её подробному описанию. команда 32 бит краткое …

Светодинамическое устройство на микроконтроллере

В конце октября 2016-го я наткнулся на Радиокоте на описание «Простой цветомузыки» автора Евгения Пашигорова (aka peg), оригинальное схемное решение которой вызвало во мне настойчивое желание изготовить такое устройство, с небольшими переделками под светодиоды. Однако, убедившись в трудности приобретения микросхем 155-й серии (равно как и их буржуйских аналогов 74-й серии), пришёл к выводу, что реализовывать …

Работа модуля USI в контроллерах AVR Tiny

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

Простая программа для управления bldc-моторами

Итак, ранее мы собрали базовую схему для экспериментов с bldc-моторами, а сейчас напишем для этой схемы первую программку и попробуем запустить какой-нибудь моторчик. Но для начала немного обсудим поставленную задачу и то, как мы будем её решать. Задача заключается в том, чтобы реализовать на микроконтроллере ATtiny2313 алгоритм блочной коммутации. При этом величину напряжения питания мы …

Базовая схема для экспериментов с BLDC-моторами (на ATtiny2313)

Представленная ниже схема является основой для экспериментов с bldc-моторами. Для тех, кто не в курсе, BLDC — это одна из разновидностей синхронных моторов, которая используется, например, в винчестерах, сидирумах, дисководах и т.п. (типа таких, как на картинке справа). Теорию работы синхронных движков в общем виде можно почитать здесь, чуть конкретнее про BLDC — вот здесь. …