Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Макрос для настройки EXTI 
:(
    Опции темы
supercelt
Дата 20.8.2017, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Здравствуйте. Помогите пожалуйста.
Имелся у меня как-то stm32f100
и для него надо было автоматизировать настройку портов и прерываний, например я нашёл вот такое решение
Код

#define EXTI_INI_PIN(PORT, PIN) AFIO->EXTICR[PIN/4] |= ((((uint32_t)(&(PORT->CRL)) - GPIOA_BASE) >> 10) << ((PIN % 4) << 2))

суть была в том что бы настроить автоматом EXTICR в зависимости от порта и пина, на котором будет висеть внешнее прерывание.

И тут я перешёл на stm32f405

макрос будет уже другой. Я просто не понимаю, логику. Как автор выяснил что нужно именно так писать? что тут сдвинуть на 10 вправо, потом налево, деление с остатком. Мне надо написать для 405. Но я не понимаю алгоритм как это вычислить.
PM   Вверх
Romikgy
Дата 21.8.2017, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



а заглянуть в datasheet религия не позволяет?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
supercelt
Дата 21.8.2017, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Позволяет. Но например я так и не понял как например вычисляется адрес PORT->CRL. В даташите адреса такого нет. Есть базовый адрес шины. И дано смещение на регистры. Получается адрес crl и будет адрес шины, если смещение 0? Но я немного о другом. Даже допустим зная все адреса, как понять что надо именно вычесть что-то от чего-то, потом сместить именно в такой последовательности, а не в другой? Я поэтому и обратился к вам за помощью, потому что не понимаю(((
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0943 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.