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

 
 
> STM32F100 Непроизвольное срабатывание прерывания
Plexus
сообщение Aug 29 2014, 09:10
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 21-01-09
Пользователь №: 43 710



Требуется помошь в поиске проблемы.

Непроизвольно срабатывает прерывание EXTI0_IRQHandler().
Нога подтянута к 3.3В резистором. И на нее подается импульс.
Прерывание должно срабатывать по спаду. И срабатывает. Но время от времени, в обработчик залетает и выполняется проверка на EXTI_GetITStatus(EXTI_Line0). Импульсы в этот момент не поступают (слежу на осцилле).
Что за магия такая?

CODE
void init_EXTI()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

EXTI_InitTypeDef EXTI_InitStructure;

EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}

void init_NVIC()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

int main(void)
{
RCC_Configuration();
init_timer();

init_EXTI();
init_NVIC();

NVIC_EnableIRQ(EXTI0_IRQn);
NVIC_DisableIRQ(TIM6_DAC_IRQn);


while(1);
}

void EXTI0_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line0) != RESET)
{

EXTI_ClearITPendingBit(EXTI_Line0);
TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
TIM_SetCounter(TIM6, 0);

if (flag)
{
flag = 0;
NVIC_EnableIRQ(TIM6_DAC_IRQn);
}
}
}


Сообщение отредактировал IgorKossak - Aug 29 2014, 20:47
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Sep 1 2014, 07:55
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Golikov A. @ Sep 1 2014, 12:36) *
4. if (EXTI_GetITStatus(EXTI_Line0) != RESET) - вот это замените пожалуйста на temp_reg = Значение регистра флагов.
if((temp_reg & НУЖНЫЙ_ПИН) != 0)
Потому что внешние прерывание принимает прерывание от 18 источников, 16 из них ноги, а 2 источника это будильник и PVD (че такое кстати ?). Ваша проверка смотрит только на то что было внешние прерывание, но она не смотрит на то какой пин или что его вызывало.

Вообще-то смотрит, видите параметр EXTI_Line0 - это как раз оно.

Цитата(KnightIgor @ Sep 1 2014, 13:14) *
Присоединяюсь и настоятельно рекомендую разобраться со всеми ногами, которые обрабатываются _Line0. Это же вроде все типа PA0, PB0, и т.д.?

Нет. Там в конфигурации задаётся порт для данной ножки. (GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0))

ЗЫ. Эх вы, библиотекофобыsm.gif Я тоже не пользую SPL, но хоть примерно знаю, как она работает. (Врага надо знать в лицо! sm.gif)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Sep 1 2014, 10:34
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(AHTOXA @ Sep 1 2014, 09:55) *
Нет. Там в конфигурации задаётся порт для данной ножки. (GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0))

Да, да, это я перепутал. Нельзя одновременно использовать в качестве входов для внешних прерываний ножки разных портов того же номера. То есть, PA0 и PB0 не получится использовать одновременно, что накладывает существенные ограничения схемотехнику: если надо несколько внешних прерываний, надо раскидывать их на разные индексы.
И снова автору топика: как говорил один наш доцент, вся дрянь от - источников питания. Где-то шумит масса, видать. Может повесить кондерчик с ноги на массу?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Plexus   STM32F100 Непроизвольное срабатывание прерывания   Aug 29 2014, 09:10
- - Ant_m   Цитата(Plexus @ Aug 29 2014, 13:10) Импул...   Aug 29 2014, 09:45
|- - Plexus   Цитата(Ant_m @ Aug 29 2014, 16:45) А на G...   Aug 29 2014, 10:43
- - Golikov A.   это ваще может значить черти что, куча народу нары...   Aug 29 2014, 11:51
- - Plexus   Т.е. достаточно настроить все GPIO и проблема проп...   Aug 30 2014, 05:01
- - Golikov A.   где то краем ухо я слышал про ложные срабатывания ...   Aug 30 2014, 05:55
|- - adnega   Цитата(Golikov A. @ Aug 30 2014, 09:55) г...   Aug 30 2014, 08:57
|- - Plexus   Цитата(adnega @ Aug 30 2014, 15:57) Прави...   Aug 30 2014, 09:56
|- - adnega   Цитата(Plexus @ Aug 30 2014, 13:56) Хорош...   Aug 30 2014, 10:16
|- - Plexus   Цитата(adnega @ Aug 30 2014, 17:16) Это н...   Aug 30 2014, 10:24
- - Golikov A.   самое правильное, при прерывании проверять флаг, ч...   Aug 30 2014, 14:16
|- - Plexus   Цитата(Golikov A. @ Aug 30 2014, 21:16) с...   Aug 30 2014, 18:41
- - AHTOXA   Цитата(adnega @ Aug 30 2014, 14:57) Прави...   Aug 30 2014, 14:41
- - Golikov A.   ну он же не кортекс-м... Можно в 2 словах откуда ...   Aug 30 2014, 15:06
|- - adnega   Цитата(Golikov A. @ Aug 30 2014, 19:06) н...   Aug 30 2014, 15:53
- - AHTOXA   Цитата(Golikov A. @ Aug 30 2014, 21:06) н...   Aug 30 2014, 19:11
|- - adnega   Цитата(AHTOXA @ Aug 30 2014, 23:11) Погуг...   Aug 30 2014, 19:22
||- - AHTOXA   Цитата(adnega @ Aug 31 2014, 01:22) Флаги...   Aug 30 2014, 21:30
|- - Plexus   Цитата(AHTOXA @ Aug 31 2014, 02:11) У вас...   Aug 31 2014, 06:09
|- - AHTOXA   Цитата(Plexus @ Aug 31 2014, 12:09) Так д...   Aug 31 2014, 08:04
|- - Plexus   Цитата(AHTOXA @ Aug 31 2014, 15:04) А, во...   Aug 31 2014, 15:07
|- - AHTOXA   Цитата(Plexus @ Aug 31 2014, 21:07) Та фу...   Aug 31 2014, 23:07
- - Golikov A.   о разрешенных конечно, иначе это была бы мощная ба...   Aug 30 2014, 19:42
- - Golikov A.   а полингом проверить состояние пина нельзя? Кстати...   Aug 31 2014, 06:18
|- - Plexus   Цитата(Golikov A. @ Aug 31 2014, 13:18) а...   Aug 31 2014, 06:26
- - adnega   Цитата(Plexus @ Aug 31 2014, 10:09) Если ...   Aug 31 2014, 06:31
|- - Plexus   Цитата(adnega @ Aug 31 2014, 13:31) Либо ...   Aug 31 2014, 06:43
|- - adnega   Цитата(Plexus @ Aug 31 2014, 10:43) Дребе...   Aug 31 2014, 06:58
- - adnega   А мне очень не нравится эта строчка Цитатаif (flag...   Aug 31 2014, 09:51
- - Golikov A.   ЦитатаФлаг в периферийном модуле сбрасывается мгно...   Aug 31 2014, 11:16
|- - adnega   Цитата(Golikov A. @ Aug 31 2014, 15:16) н...   Aug 31 2014, 13:01
- - Golikov A.   мне кажется у вас все таки проходит какая - то пом...   Aug 31 2014, 17:04
|- - adnega   Цитата(Golikov A. @ Aug 31 2014, 21:04) м...   Aug 31 2014, 20:11
|- - Plexus   Цитата(adnega @ Sep 1 2014, 03:11) А рези...   Sep 1 2014, 02:47
- - Golikov A.   1. Есть еще образец платы, вдруг именно на этой ка...   Sep 1 2014, 06:36
|- - KnightIgor   Цитата(Golikov A. @ Sep 1 2014, 08:36) 4....   Sep 1 2014, 07:14
|- - Plexus   Цитата(KnightIgor @ Sep 1 2014, 14:14) P....   Sep 1 2014, 08:59
- - adnega   Таймеры в STM32 очень функциональные. Я бы сделал ...   Sep 1 2014, 08:14
- - Golikov A.   мне лень было лезть и смотреть именно эти функции....   Sep 1 2014, 08:14
|- - AHTOXA   Цитата(Golikov A. @ Sep 1 2014, 14:14) мн...   Sep 1 2014, 11:22
- - Golikov A.   Да я вроде предложил ему привести что получилось в...   Sep 1 2014, 11:41
|- - AHTOXA   Цитата(Golikov A. @ Sep 1 2014, 17:41) Да...   Sep 1 2014, 12:29
- - Plexus   Господа, да вы что в самом то деле? Для меня любая...   Sep 1 2014, 12:42
- - ViKo   А осциллограф-то хороший был? Он может словить кор...   Sep 1 2014, 12:47
- - Golikov A.   ЦитатаВы всерьёз думаете, что ошибка в библиотечны...   Sep 1 2014, 15:32
- - ISF   Столкнулся с похожей проблемой что и автор топика....   May 9 2017, 08:30
|- - scifi   Цитата(ISF @ May 9 2017, 11:30) Мне хочет...   May 9 2017, 10:01
|- - ISF   Цитата(scifi @ May 9 2017, 11:01) Вы в ку...   May 9 2017, 12:04
- - Baser   Цитата(ISF @ May 9 2017, 11:30) При любом...   May 9 2017, 12:26
|- - ISF   Цитата(Baser @ May 9 2017, 13:26) Удивите...   May 9 2017, 13:19
- - rudy_b   Вы все про высокое, а причина может быть намного п...   May 9 2017, 12:45
- - amiller   По моему STM ведёт себя абсолютно правильно. Фронт...   May 9 2017, 13:20
|- - ISF   Цитата(amiller @ May 9 2017, 14:20) По мо...   May 9 2017, 13:59
|- - amiller   Цитата(ISF @ May 9 2017, 17:59) Согласен ...   May 9 2017, 15:05
|- - jcxz   Цитата(ISF @ May 9 2017, 15:59) Но почему...   May 9 2017, 21:29
|- - Forger   Подозреваю, что речь идет о неком хитроумном спосо...   May 9 2017, 21:34
|- - jcxz   Цитата(Forger @ May 9 2017, 23:34) Очевид...   May 9 2017, 21:44
|- - Forger   Нынче существуют 5V армы. Они по-идее должны пройт...   May 9 2017, 21:55
- - Baser   Цитата(ISF @ May 9 2017, 16:19) К тому же...   May 9 2017, 14:55
- - ViKo   А попробовать одной рукой взяться за плату, за цеп...   May 9 2017, 16:04
|- - ISF   Цитата(ViKo @ May 9 2017, 17:04) А попроб...   May 9 2017, 19:34
- - ViKo   У вас там электромагнитная аномалия! А в друго...   May 9 2017, 20:32
|- - Forger   Цитата(ViKo @ May 9 2017, 23:32) А в друг...   May 9 2017, 21:25
- - ISF   Был задан вполне конкретный вопрос - какого чёрта ...   May 10 2017, 04:56
|- - Forger   Цитата(ISF @ May 10 2017, 07:56) Был зада...   May 10 2017, 06:28
|- - adnega   Цитата(ISF @ May 10 2017, 07:56) какого ч...   May 10 2017, 07:31
|- - jcxz   Цитата(ISF @ May 10 2017, 06:56) На любом...   May 10 2017, 08:24
- - ViKo   Если топикстартер выложит hex-код программы, любой...   May 10 2017, 09:52
|- - jcxz   Цитата(ViKo @ May 10 2017, 11:52) Если то...   May 10 2017, 10:06
|- - adnega   Цитата(ViKo @ May 10 2017, 12:52) Мне тож...   May 10 2017, 10:49
|- - Сергей Борщ   QUOTE (ViKo @ May 10 2017, 12:52) Мне тож...   May 10 2017, 11:44
|- - Forger   Цитата(Сергей Борщ @ May 10 2017, 14:44) ...   May 10 2017, 14:00
- - ViKo   Есть ST-Link/V2-Isol http://www.st.com/content/st_...   May 11 2017, 17:22


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 12:11
Рейтинг@Mail.ru


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