реклама на сайте
подробности

 
 
> прерывания STM32F4, должно работать, но не хочет...
Метценгерштейн
сообщение Aug 23 2014, 16:06
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Вроде все настроил, платка F4Discovery, а работать по нажатию на кнопку не хочет.
Может кто подскажет что не так ему?
Код
void EXTI0_IRQHandler(void)
{
  on (LED_Blue);
  EXTI->PR |= EXTI_PR_PR0;//сбросили бит прерывания
}

Код
void main()
{
  InitPeriph(); // тут лампочка описана и дефайн кнопки
  
// настройка ноги на прерывание PA0
    GPIOA->MODER &= ~GPIO_MODER_MODER0;  //input
    GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0;  //Output push-pull
    GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR0;  //40 MHz
    GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR0;  //No pull-up, pull-down
    
    // настройка внешнего прерывания на PA0
      RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
      SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI0_PA;
      EXTI->IMR |= EXTI_IMR_MR0;
      EXTI->RTSR |= EXTI_FTSR_TR0;
      NVIC_EnableIRQ(EXTI0_IRQn);  
      NVIC_SetPriority(EXTI0_IRQn, 1);
  
  
  while(1)
  {
    
  }      
  
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Aug 24 2014, 19:55
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
я хочу сбросить прерывание
EXTI_PR_PR0, т.е. должен записать в PR 0x00000001

Да, именно так (написано в даташите). Сбросится только этот бит. Примечания и условные обозначения в reference manual RM0090 смотрите.
DocID018909 Rev 7, страница 383 - про его состояние при чтении:
Цитата
0: No trigger request occurred
1: selected trigger request occurred
This bit is set when the selected edge event arrives on the external interrupt line.
This bit is cleared by programming it to ‘1’.



Сообщение отредактировал Genadi Zawidowski - Aug 24 2014, 20:06
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   прерывания STM32F4   Aug 23 2014, 16:06
- - Genadi Zawidowski   Почему не работает не скажу, но при таком способе ...   Aug 23 2014, 17:17
|- - Метценгерштейн   Цитата(Genadi Zawidowski @ Aug 23 2014, 21...   Aug 23 2014, 17:23
- - Genadi Zawidowski   Я напимсал, что увиденная ошибка не влияет. Но пот...   Aug 23 2014, 17:29
- - Метценгерштейн   да, увидел отличия- глаз замылился. кнопка- она ...   Aug 23 2014, 17:35
- - Genadi Zawidowski   Если в первом посте, я не вижу КодRCC->AHB1EN...   Aug 23 2014, 17:38
- - Метценгерштейн   вот InitPeriph(); здесь Код#ifndef HARDWARE_H__ #d...   Aug 23 2014, 17:41
- - Genadi Zawidowski   Проверьте видимость кнопки чтением регистра GPIOA-...   Aug 23 2014, 17:45
- - Метценгерштейн   так нет реакции Код{ if ((GPIOA->IDR ...   Aug 23 2014, 17:57
- - Genadi Zawidowski   На нажатия должна реагировать. Пока видно, что все...   Aug 23 2014, 17:58
- - Метценгерштейн   инициализация прерывания верная же? просто кнопка ...   Aug 23 2014, 18:00
- - Genadi Zawidowski   Цитатапросто кнопка работает- опрашивал ее по круг...   Aug 23 2014, 18:03
- - Метценгерштейн   Кодif ( is_bit_active(KEY) ) { o...   Aug 23 2014, 18:11
- - Genadi Zawidowski   Сорри, посмотрел схему... На PA0 кнопка подает ...   Aug 23 2014, 18:21
- - Метценгерштейн   провел эксперимент: в цикле зеленый LED мигает, пр...   Aug 23 2014, 18:35
- - Genadi Zawidowski   Я бы попросил проект целиком, а не только избранны...   Aug 23 2014, 18:37
- - Метценгерштейн   https://cloud.mail.ru/public/19d1f1936da5/STM32%20...   Aug 23 2014, 19:41
- - Genadi Zawidowski   Пока всё как у вас... Уточню: ввод состояния PA0 р...   Aug 23 2014, 19:58
- - Метценгерштейн   я правильно понимаю, что у вас такая же плата? EX...   Aug 23 2014, 20:01
- - Genadi Zawidowski   Плата идентичная. Лампочки работают. Посмотрел дам...   Aug 23 2014, 20:07
- - Метценгерштейн   да, спасибо, что-то с этим стартапом- с ним в прер...   Aug 23 2014, 20:18
- - Genadi Zawidowski   Ловите работающий вариант. Изменённые файлы.   Aug 23 2014, 20:25
- - Метценгерштейн   уже лучше на сон ) в чем причина была? можете вес...   Aug 23 2014, 20:35
- - Genadi Zawidowski   Ловите подкаталог пользовательской программы - в н...   Aug 23 2014, 21:03
- - Метценгерштейн   вы все пути препроцессора удалили. А зачем? http:/...   Aug 23 2014, 21:11
- - Genadi Zawidowski   Я ничего не удалял. Поместите в Ваш проект main.c ...   Aug 23 2014, 21:16
- - Метценгерштейн   ИАР какая версия? да, заработало в ИАР 7.20 ! ...   Aug 23 2014, 21:21
- - Genadi Zawidowski   Смотрите... А что мешает самому добавить один файл...   Aug 23 2014, 21:23
- - Метценгерштейн   похоже, что на 7.2 работает, а на моей нет... разб...   Aug 23 2014, 21:30
- - Genadi Zawidowski   Цитатаеще раз- что изменили, чтобы заработало? 1 -...   Aug 23 2014, 21:37
- - Метценгерштейн   да, я видел, что 6.7 ваш код обработчика работает...   Aug 23 2014, 21:43
- - Genadi Zawidowski   Что-то намудрили с использованием системных тиков....   Aug 23 2014, 22:06
- - Метценгерштейн   а если мне точно надо время мерять? на другом проц...   Aug 23 2014, 22:09
- - Genadi Zawidowski   Спокойной ночи.   Aug 23 2014, 22:10
- - Метценгерштейн   Вот что странно: обработчик Кодvoid EXTI0_IRQHandl...   Aug 24 2014, 14:01
|- - adnega   Цитата(Метценгерштейн @ Aug 24 2014, 18:0...   Aug 24 2014, 15:07
- - Genadi Zawidowski   ЦитатаВот что странно: обработчик КодEXTI->PR ...   Aug 24 2014, 15:11
|- - Метценгерштейн   Цитата(Genadi Zawidowski @ Aug 24 2014, 19...   Aug 24 2014, 15:57
- - adnega   По второму кругу обсуждаем. Найдите десять отличий...   Aug 24 2014, 15:23
- - Genadi Zawidowski   Цитатапочему все? Потому, что ЗАПИСЬ единицы в соо...   Aug 24 2014, 19:30
- - Метценгерштейн   я просто понять хочу и разобраться. Я не игнорирую...   Aug 24 2014, 19:47
- - Метценгерштейн   другими словами, можно просто писать EXTI->PR =...   Aug 24 2014, 20:35
- - Genadi Zawidowski   Цитататак мы накладываем маску 0x00000001 и стирае...   Aug 24 2014, 20:43
- - Метценгерштейн   давайте по шагам. у меня сработали прерывания EXTI...   Aug 24 2014, 20:55
- - Genadi Zawidowski   ЦитатаPR= 0x00000001 Так не потеряете. А как Вы пи...   Aug 24 2014, 20:58
- - Метценгерштейн   увидел свою ошибку- при | я в регистр запишу полно...   Aug 24 2014, 21:12
- - Genadi Zawidowski   Ну да! А ведь уже говорили, что разницу увидел...   Aug 24 2014, 21:15


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 02:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016