29.03.2017, 19:24
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Сообщение от serb-radio
|
AFIO-›EXTICR [13››0x02]
|
Я говорю - что это??
|
|
|
|
29.03.2017, 19:32
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Сообщение от NewWriter
|
вообще не понял, че это??
|
3 элемент массива
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
29.03.2017, 19:36
|
|
Заблокирован
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,715
Сказал спасибо: 189
Сказали Спасибо 3,199 раз(а) в 2,074 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Сообщение от serb-radio
|
3 элемент массива
|
Это безумный бред. Что там смещение делает?
|
|
|
|
29.03.2017, 19:38
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Аа, это он так номер массива вычисляет. В принципе, если число 13 сдвинуть на 2 позиции вправо, то получится 3. Вроде как правильно. Окей. В принципе работает.
Просто на вид сама запись 13 ›› 0x02 смотрится сумасшедше - "смешались люди, кони" - смесь десятичной и шестнадцатеричной - жуть.
Надо проверить, вообще возникает ли прерывание от того PD13?
Последний раз редактировалось NewWriter; 29.03.2017 в 20:06.
|
|
|
|
29.03.2017, 19:57
|
|
Частый гость
Регистрация: 11.12.2010
Сообщений: 10
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
поясню для наглядности
вот так:
___/ \___
___________/ \____
оба прерывания обрабатываются правильно. одно за другим.
а вот так:
___/ \____
___/ \____
только одно.
Т.е. при выходе из первого обработчика не происходит переход на вектор второго прерывания. Как будто сбрасывается флаг где-то, или он даже не выставлялся.
Последний раз редактировалось ritmauto; 29.03.2017 в 20:02.
|
|
|
|
29.03.2017, 20:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,047
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
А в обработчике прерывания в сбрасываете pending bit только своего прерывания ??
Например так EXTI-›PR = EXTI_PR_PR0; - для EXTI0
|
|
|
|
29.03.2017, 20:52
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Сбрасывается бит только своего прерывания
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
29.03.2017, 21:09
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
Ну а в регистре NVIC_ISPR1 бит 8, отвечающий за номер 40 прерывания - устанавливается ли?
|
|
|
|
30.03.2017, 11:58
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
а разве автоматически прерывания в очередь не переводятся
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
30.03.2017, 15:37
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: обработка одновременных прерываний в STM32
пробовал менять субприоритеты прерываний, ничего не помогает, мож чего скажите:
Код:
|
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 0x03;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 0x03;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// capt0
//AFIO-›EXTICR [13››0x02] |= AFIO_EXTICR4_EXTI13_PD;
AFIO-›EXTICR [3] |= AFIO_EXTICR4_EXTI13_PD;
// EXTI-›IMR |= EXTI_IMR_MR13;
// EXTI-›RTSR |= EXTI_RTSR_TR13;
EXTI-›FTSR |= EXTI_FTSR_TR13;
// capt7
//AFIO-›EXTICR [3››0x02] |= AFIO_EXTICR1_EXTI3_PD;
AFIO-›EXTICR [0] |= AFIO_EXTICR1_EXTI3_PD;
// EXTI-›IMR |= EXTI_IMR_MR3;
// EXTI-›RTSR |= EXTI_RTSR_TR3;
EXTI-›FTSR |= EXTI_FTSR_TR3;
//NVIC_EnableIRQ (EXTI0_IRQn);
//NVIC_EnableIRQ (EXTI1_IRQn);
//NVIC_EnableIRQ (EXTI2_IRQn);
NVIC_EnableIRQ (EXTI3_IRQn);
//NVIC_EnableIRQ (EXTI4_IRQn);
//NVIC_EnableIRQ (EXTI9_5_IRQn);
NVIC_EnableIRQ (EXTI15_10_IRQn); |
__________________
То, что нас не убивает - делает нас сильнее
Последний раз редактировалось realid; 30.03.2017 в 17:15.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:33.
|
|