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

Читать дальше
8L-Курс, Часть 3 - Прерывания, EXTI
← Часть 2 — GPIO Содержание Часть 4 — Тактирование →
Мы уже умеем работать с GPIO. Выставлять нужные уровни и читать состояния ножек, настроенных на вход. Но что, если нужно не просто прочитать состояние ножки, а быстро отреагировать на смену уровня? А если таких ножек несколько? Тут нам на помощь приходит система внешних прерываний — EXTI (EXTernal Interrupts). Она довольно гибко настраивается и позволяет получить прерывание с любой ножки МК, что дико удобно — не нужно подстраивать разводку платы под пару специальных ножек INT, как это было в большинстве AVR.
Читать дальше
Мы уже умеем работать с GPIO. Выставлять нужные уровни и читать состояния ножек, настроенных на вход. Но что, если нужно не просто прочитать состояние ножки, а быстро отреагировать на смену уровня? А если таких ножек несколько? Тут нам на помощь приходит система внешних прерываний — EXTI (EXTernal Interrupts). Она довольно гибко настраивается и позволяет получить прерывание с любой ножки МК, что дико удобно — не нужно подстраивать разводку платы под пару специальных ножек INT, как это было в большинстве AVR.
Читать дальше
PIC24. C30 и прерывания
Как и обещалось, сегодня посмотрим что такое прерывания в PIC24 и с чем их есть на C30. Утащеная на допиливание статья по АЦП тоже когда-нибудь вернется, ибо отключение света и отсутствие автосохранений отбили желание писать все заново.
По сравнению с 18 и младшими пиками тут у нас уже не 1 и не 2 вектора прерываний, а целых 2 таблицы по 126 штук каждая. Причем для каждого из прерываний можно установить приоритет, а вход и выход из прерывания осуществляется за 4 и 2 инструкции соответственно.
Читать дальше
По сравнению с 18 и младшими пиками тут у нас уже не 1 и не 2 вектора прерываний, а целых 2 таблицы по 126 штук каждая. Причем для каждого из прерываний можно установить приоритет, а вход и выход из прерывания осуществляется за 4 и 2 инструкции соответственно.
Читать дальше
STM32F103 внешние прерывания, проблема
Всем привет.
Использую внешнюю линию прерывания на порту GPIOA9.
Прерывание должно происходить по заднему фронту (на нем висит соответствующая нога W5100).
Все настроено, железо дергает ногу как положено, но контроллер после этого зацикливается на прерывании, независимо от состояния ноги. Для эксперимента воткнул в код обработчика выключение прерывания. Подействовало, но как только разрешаю прерывание — система зацикливается на нем не зависимо от состояния вывода мк.
Читать дальше
Использую внешнюю линию прерывания на порту GPIOA9.
Прерывание должно происходить по заднему фронту (на нем висит соответствующая нога W5100).
Все настроено, железо дергает ногу как положено, но контроллер после этого зацикливается на прерывании, независимо от состояния ноги. Для эксперимента воткнул в код обработчика выключение прерывания. Подействовало, но как только разрешаю прерывание — система зацикливается на нем не зависимо от состояния вывода мк.
Читать дальше
Руководство к быстрому старту по работе с периферией STM32F10x
Данная статья
предназначена для тех, кто начинает изучать ARM-контроллеры ST Microelectronics серии STM32F10x и уже определился со средой разработки, но еще не взялся за собственно программирование. Я покажу, как средствами библиотеки STM32 Peripheral Library можно легко управлять периферией контроллера без прямого обращения к регистрам, а главное — научу, как искать информацию по работе с этой периферией.
Практически вся (если не вообще вся) периферия настраивается примерно одинаково, различия имеются только в специфических для каждого устройства параметрах и командах. Приведу пример:
Это пример настройки порта ввода-вывода (GPIO). Рассмотрим его поподробнее.
Читать дальше

Практически вся (если не вообще вся) периферия настраивается примерно одинаково, различия имеются только в специфических для каждого устройства параметрах и командах. Приведу пример:
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). Рассмотрим его поподробнее.
Читать дальше
- +10
- 12 сентября 2011, 20:43
- ALPINE63rus
- 27
Внешние прерывания и приоритеты прерываний
Система внешних прерываний в STM8 устроена довольно хитро. Разработчики дали нам возможность ловить прерывания с любого пина, но при этом выделять по вектору на каждый пин не стали. В результате эта часть STM8L (в S- с этим как-то получше) просто утыкана разными костылями и хитростями.
Разберемся, как все устроено.
До кучи, кроме внешних прерываний рассмотрим настройку приоритетов прерываний.
Читать дальше
Разберемся, как все устроено.
До кучи, кроме внешних прерываний рассмотрим настройку приоритетов прерываний.
Читать дальше