Вектора прерываний в C++ стиле

Хочу представить на суд широкой общественности (да и самому не потерять) мою реализацию таблицы векторов прерываний для arm микроконтроллеров STM32. Данная реализация генерируется из asm-файлов SPL, написана на С++ и облегчает работу поддержкой автодополнений и корректной работой с таблицей векторов в памяти.


Читать дальше
  • +6
  • 11 ноября 2014, 17:25
  • dekar

Управление сервомашинкой из Cubieboard2

Продолжая тему разработки модулей ядра сегодня посмотрим на использование таймеров и прерываний. Это пожалуй 2 наиболее специфичные функции, которые умеет микроконтроллер и обычно недоступны при разработке классического приложения для ОС Linux(да и Windows тоже), а при работе с внешними устройствами эти функции очень нужны. В качестве примера — управление сервомашинкой и кино в жанре «прибытие поезда».

Читать дальше
  • +12
  • 08 августа 2014, 23:42
  • kest

8L-Курс, Часть 3 - Прерывания, EXTI

← Часть 2 — GPIO Содержание Часть 4 — Тактирование →

Мы уже умеем работать с GPIO. Выставлять нужные уровни и читать состояния ножек, настроенных на вход. Но что, если нужно не просто прочитать состояние ножки, а быстро отреагировать на смену уровня? А если таких ножек несколько? Тут нам на помощь приходит система внешних прерываний — EXTI (EXTernal Interrupts). Она довольно гибко настраивается и позволяет получить прерывание с любой ножки МК, что дико удобно — не нужно подстраивать разводку платы под пару специальных ножек INT, как это было в большинстве AVR.


Читать дальше
  • +11
  • 09 февраля 2013, 14:35
  • dcoder
  • 1

PIC24. C30 и прерывания

PIC
  Как и обещалось, сегодня посмотрим что такое прерывания в PIC24 и с чем их есть на C30. Утащеная на допиливание статья по АЦП тоже когда-нибудь вернется, ибо отключение света и отсутствие автосохранений отбили желание писать все заново.

  По сравнению с 18 и младшими пиками тут у нас уже не 1 и не 2 вектора прерываний, а целых 2 таблицы по 126 штук каждая. Причем для каждого из прерываний можно установить приоритет, а вход и выход из прерывания осуществляется за 4 и 2 инструкции соответственно.

Читать дальше
  • +2
  • 06 апреля 2012, 16:40
  • kest

STM32F103 внешние прерывания, проблема

Всем привет.

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


Читать дальше

Руководство к быстрому старту по работе с периферией STM32F10x

Данная статья Logoпредназначена для тех, кто начинает изучать ARM-контроллеры ST Microelectronics серии STM32F10x и уже определился со средой разработки, но еще не взялся за собственно программирование. Я покажу, как средствами библиотеки STM32 Peripheral Library можно легко управлять периферией контроллера без прямого обращения к регистрам, а главное — научу, как искать информацию по работе с этой периферией.

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

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init( GPIOC , &GPIO_InitStructure);

Это пример настройки порта ввода-вывода (GPIO). Рассмотрим его поподробнее.


Читать дальше

Внешние прерывания и приоритеты прерываний

Система внешних прерываний в STM8 устроена довольно хитро. Разработчики дали нам возможность ловить прерывания с любого пина, но при этом выделять по вектору на каждый пин не стали. В результате эта часть STM8L (в S- с этим как-то получше) просто утыкана разными костылями и хитростями.
Разберемся, как все устроено.

До кучи, кроме внешних прерываний рассмотрим настройку приоритетов прерываний.


Читать дальше
  • +2
  • 19 августа 2011, 19:46
  • dcoder
  • 1