Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F100C4T6 прерывание на PB14
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 29, 2025 18:52:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Чт май 02, 2013 20:53:01 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Подскажите, можно ли поставить прерывание на вывод PB14 ?
Контроллер STM32F100C4T6

Код:
void InterruptInit (void)
{
    // Конфигурация линии как вход
    #define BUTTON  B, 14, HIGH, INPUT_FLOATING,
    PIN_CONFIGURATION (BUTTON);
     
    // --
    // --
 
    // Cогласно документации необходимо разрешить тактирование
    // AFIO (альтернативные функции линий ввода-вывода), так как регистры
    // управления мультиплексорами находится в данном модуле:
    RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;

    // Установка прерывания на порт B вывод 14
    AFIO->EXTICR[0] &= ~AFIO_EXTICR4_EXTI14_PB;
    AFIO->EXTICR[0] |= AFIO_EXTICR4_EXTI14_PB;
 
    // Срабатывание по изменению уровня
    EXTI->RTSR |= EXTI_RTSR_TR0;
   // EXTI->FTSR |= EXTI_FTSR_TR0;
   
    // Разрешить генерацию прерывания от выбранной линии
    EXTI->IMR |= EXTI_IMR_MR0;

    // Установка приоритета
    // NVIC_SetPriority(EXTI14_IRQn, 1);
    // Разрешить прерывание
    NVIC_EnableIRQ(EXTI14_IRQn);
 
}


Проблема возникает на коде:
Код:
NVIC_EnableIRQ(EXTI14_IRQn)
identifier "EXTI14_IRQn" is undefined

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Чт май 02, 2013 21:15:12 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Цитата:
Подскажите, можно ли поставить прерывание на вывод PB14 ?
... можно
Цитата:
Проблема возникает на коде:
Код:
 ....
...почитайте datasheet - пересказывать его содержимое долго....

ЗЫ. на EXTI14_IRQn ругается, потому, что его нет см. EXTI15_10_IRQn


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Вт июн 11, 2013 16:42:03 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Прерывание как-то не совсем работает.
Оно срабатывает по 12 раз. И по 3 таких раза за секунду. Т.е. 36 раз за секунду.
Причём на вывод PB13 подаю 3.3В через резистор 12K и уровень никак не изменяется (смотрел осциллографом) !
Все срабатывания происходят с одинаковой периодичностью. Т.е. возникает логический вывод, что что-то запускает прерывание изнутри.

Код:
 
    // Конфигурация линии как вход
    #define BUTTON_B13  B, 13, HIGH, INPUT_FLOATING,
    PIN_CONFIGURATION (BUTTON_B13);
     
    // Установка прерывания на порт B вывод 13
    AFIO->EXTICR[0] &= ~AFIO_EXTICR4_EXTI13_PB;
    AFIO->EXTICR[0] |= AFIO_EXTICR4_EXTI13_PB;

    // Разрешить запрос от EXTI.
    EXTI->IMR|=(EXTI_IMR_MR13);
 
    // Срабатывание по изменению уровня
    EXTI->RTSR |= EXTI_RTSR_TR13;
    // EXTI->FTSR |= EXTI_FTSR_TR13;

    // Разрешить прерывание
    NVIC_EnableIRQ (EXTI15_10_IRQn); // Разрешить в NVIC.
}


Код:
void EXTI15_10_IRQHandler (void) {

  if (EXTI->PR & (1<<13)) // Прерывание от EXTI ?
  {
     EXTI->PR |= (1<<13); // Сбросить флаг 
     temp = temp + 1;
  }
}

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Вт июн 11, 2013 22:47:47 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Прерывание установлено на порт А.
Но я ведь устанавливаю порт B.
Код:
// Установка прерывания на порт B вывод 13
AFIO->EXTICR[0] &= ~AFIO_EXTICR4_EXTI13_PB;
AFIO->EXTICR[0] |= AFIO_EXTICR4_EXTI13_PB;

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Вт июн 11, 2013 23:00:24 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Разобрался.
Вот так нужно:
Код:
 AFIO->EXTICR [13>>0x02] |= AFIO_EXTICR4_EXTI13_PB;

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F100C4T6 прерывание на PB14
СообщениеДобавлено: Пн авг 25, 2014 12:51:44 
Опытный кот
Аватар пользователя

Карма: 5
Рейтинг сообщений: 44
Зарегистрирован: Вт апр 26, 2011 13:58:36
Сообщений: 717
Откуда: Ростовская область
Рейтинг сообщения: 1
sx386 писал(а):
Разобрался.

Немного поникропостю, дабы смотрю до сих пор в этом вопросе нет четкого ответа. Вернее есть, но нет четкого понимания ( сужу по себе).
В данном случае получается не разобрались, а прочитали, что надо сдвигать на два бита вправо. Однако можно и не сдвигать
Код:
AFIO->EXTICR[3] |= AFIO_EXTICR4_EXTI13_PB;
Здесь группа регистров их 4 штуки
          [0] - с 0 по 3 (1-й регистр)
          [1] - с 4 по 7 (2-й регистр)
          [2] - с 8 по 11(3-й регистр)
          [3] - с 12 по 15 канал (4-й регистр)

Вот и получается или [3] или [13>>0x02] (1101>>2 = 0011) = 3
Сам долго не мог понять.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y