|
прерывания STM32F4, должно работать, но не хочет... |
|
|
|
Aug 23 2014, 16:06
|
Профессионал
    
Группа: Свой
Сообщений: 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) { } }
|
|
|
|
|
 |
Ответов
|
Aug 23 2014, 17:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
вот InitPeriph(); здесь Код #ifndef HARDWARE_H__ #define HARDWARE_H__
#define LED_Green GPIOD, GPIO_Pin_12, H #define LED_Orange GPIOD, GPIO_Pin_13, H #define LED_Red GPIOD, GPIO_Pin_14, H #define LED_Blue GPIOD, GPIO_Pin_15, H
#define RS232_BAUDRATE 38400 #define SYS_CLK (32000000LL) // частота шины #define TIM6_PRESCALER (0x3E8LL) // предделитель системной частоты (делим на 1000) #define TIM6_COMPARE(ARR) MS // до скольки считает счетчик и прерывается
#define MS SYS_CLK / TIM6_PRESCALER / 1000 // сколько итераций цикла надо на одну миллисекунду #define MKS MS / 1000 // на микросекунду в 1000 раз меньше void InitPeriph(void) { SysTick_Config(SystemCoreClock/8/1000); // системный таймер -из файла exel видно, что он делится на 8 от тактовой частоты RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOAEN; // Включаем тактирование порта D GPIOD->MODER |= GPIO_MODER_MODER12_0; //output GPIOD->OTYPER &= ~GPIO_OTYPER_OT_12; //Output push-pull GPIOD->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR12; //40 MHz GPIOD->PUPDR &=~GPIO_PUPDR_PUPDR12; //No pull-up, pull-down GPIOD->MODER |= GPIO_MODER_MODER13_0; //output GPIOD->OTYPER &= ~GPIO_OTYPER_OT_13; //Output push-pull GPIOD->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR13; //40 MHz GPIOD->PUPDR &=~GPIO_PUPDR_PUPDR13; //No pull-up, pull-down GPIOD->MODER |= GPIO_MODER_MODER14_0; //output GPIOD->OTYPER &= ~GPIO_OTYPER_OT_14; //Output push-pull GPIOD->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR14; //40 MHz GPIOD->PUPDR &=~GPIO_PUPDR_PUPDR14; //No pull-up, pull-down
GPIOD->MODER |= GPIO_MODER_MODER15_0; //output GPIOD->OTYPER &= ~GPIO_OTYPER_OT_15; //Output push-pull GPIOD->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR15; //40 MHz GPIOD->PUPDR &=~GPIO_PUPDR_PUPDR15; //No pull-up, pull-downown }
#endif // HADRWARE_H__
|
|
|
|
Сообщений в этой теме
Метценгерштейн прерывания 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 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 Genadi Zawidowski Цитатая хочу сбросить прерывание
EXTI_PR_PR0, т.е.... Aug 24 2014, 19:55 Метценгерштейн другими словами, можно просто писать
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|