Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

обработка одновременных прерываний в STM32

Непрочитано 29.03.2017, 18:42  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию обработка одновременных прерываний в STM32

доброго всем дня! Вопрос такой: в МК STM32f103VE приходят несколько прерываний от внешних линий, при этом как минимум пара прерываний может сработать одновременно, может ли МК пропустить одно из них? Приоритет задан у всех одинаковым (=2). Или в МК прерывания буферизуются? можете пояснить ситуацию, кто сталкивался с подобными вещами. Спасибо.
Реклама:
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 29.03.2017, 18:53  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

две задачи стм32 делать одновременно не может.
вернее процессорное ядро не может.
поэтому либо ставишь разные приоритеты и прерывания по очереди выполняются, либо чтото скидываешь на дма, и тогда в дма данные сами по себе крутятся(например прием по уарту строки или набор буфера из ацп) а ядро еще чтото делает в это же время.

прерывания не буферятся а просто выставляются флаги прерываний и проц по очереди заходит в эти вектора. если данные не успел принять или считать - извините - они пропали
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 29.03.2017, 18:58  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

Нет, не пропустятся.
Приходит запрос на прерывание. Если у него достаточный приоритет, то оно ставится в активное и начинается переход к его исполнению. Все остальные пришедшие запросы на прерывания, если их приоритет недостаточен для прерывания активного прерывания, ставятся в "ожидающие" (или "отложенные") - Pending.
Помимо чисто приоритетов, у прерываний есть еще и номера. Так вот, в случае одинаковых приоритетов, приоритет получает прерывание с меньшим номером и поставится в "активные". Остальные - будут установлены в "отложенные".
Как только обработка текущего активного прерывания будет завершена, на обработку поступят "отложенные", в соответствии с их приоритетом и номером.
Если у всех прерываний одинаковый приоритет, то ни одно из них не может прервать работу другого, но зато они будут стоять в очереди. Как только одно из обрабатываемых прерываний завершается, из очереди будет извлечено очередное ожидающее, в соответствии с его номером, от меньшего к большему.

Последний раз редактировалось NewWriter; 29.03.2017 в 19:03.
NewWriter вне форума  
Непрочитано 29.03.2017, 18:58  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

Какие прерывания то используются?
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 29.03.2017, 19:05  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

2 линии:

NVIC_EnableIRQ (EXTI3_IRQn);
NVIC_SetPriority(EXTI3_IRQn, 2);

NVIC_EnableIRQ (EXTI15_10_IRQn);
NVIC_SetPriority(EXTI15_10_IRQn, 2);
__________________
То, что нас не убивает - делает нас сильнее

Последний раз редактировалось serb-radio; 29.03.2017 в 19:16.
serb-radio вне форума  
Непрочитано 29.03.2017, 19:07  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

В данный момент при одновременном приходе на линию ext3(PD3) и ext13 (PD13) одно из них теряется
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 29.03.2017, 19:10  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

вот функция конфига:
Код:
void exti_capt (unsigned int exti_msk)
{

AFIO-›EXTICR [13››0x02] |= AFIO_EXTICR4_EXTI13_PD;
		EXTI-›IMR |= EXTI_IMR_MR13;		
//	EXTI-›RTSR |= 	EXTI_RTSR_TR13; 
		EXTI-›FTSR |= 	EXTI_FTSR_TR13; 
	}


		AFIO-›EXTICR [3››0x02] |= AFIO_EXTICR1_EXTI3_PD; 
		EXTI-›IMR |= EXTI_IMR_MR3;	

//	EXTI-›RTSR |= 	EXTI_RTSR_TR3; 
		EXTI-›FTSR |= 	EXTI_FTSR_TR3; 


	NVIC_EnableIRQ (EXTI3_IRQn);
	NVIC_SetPriority(EXTI3_IRQn, 2);


	NVIC_EnableIRQ (EXTI15_10_IRQn);
	NVIC_SetPriority(EXTI15_10_IRQn, 2);

	return;
}
__________________
То, что нас не убивает - делает нас сильнее

Последний раз редактировалось realid; 30.03.2017 в 17:14.
serb-radio вне форума  
Непрочитано 29.03.2017, 19:14  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

А что в прерываниях выполняется?
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 29.03.2017, 19:17  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

Сообщение от serb-radio Посмотреть сообщение
AFIO-›EXTICR [1››0x02]
вообще не понял, че это??

Последний раз редактировалось NewWriter; 29.03.2017 в 19:22.
NewWriter вне форума  
Непрочитано 29.03.2017, 19:18  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: обработка одновременных прерываний в STM32

Пробовал приоритеты разные ставить для каждой из линий - не помогает
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по непрерывности прерываний в STM32 MaxiMuz79 ARM 33 19.01.2014 08:32
Обработка прерываний в LPC1114 swat24 Микроконтроллеры, АЦП, память и т.д 7 09.12.2011 01:11
Обработка прерываний UART ADuC7026 korel_one Микроконтроллеры, АЦП, память и т.д 0 01.04.2010 10:44
Обработка нескольких прерываний AVR (вопрос) festoon Микроконтроллеры, АЦП, память и т.д 27 17.11.2008 18:02
Обработка прерываний. Tibo Микроконтроллеры, АЦП, память и т.д 12 13.07.2007 17:22


Часовой пояс GMT +4, время: 14:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.