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

 
 
> Основной цикл или обработчик прерываний, Что лучше утяжелять?
arttab
сообщение Oct 4 2005, 04:46
Сообщение #1


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Кто какими критериями пользуется выбирая место размещения вызовов функций? В главном цикле, обработчике прерываний или по условию из глав. цикла.
У меня в программе есть функции которые имеет смысл вызывать при прерываниях: АЦП, УАРТ,.... если они будут в глав. цикле - увеличится длительность цикла. если в обработчике, то длительность обработки, если по условию, то нужно больше создавать программных флагов (по условию). Кто как решает?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TMX
сообщение Feb 14 2006, 07:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 19-01-05
Из: Москва
Пользователь №: 2 064



Цитата
Не скажите, предсказуемость наоборт нарушится.
Чем больше Latency Time тем дальше система отдаляется от Real Time.

smile.gif "Ничего я на это не скажу, а только отвечу..."
Жесткое РВ, это когда можно рассчитать время обработки события, максимальное и минимальное. И все.
Большое это время или маленькое - не имеет значения. Для ПИД рег. температуры печи и 100 мс достаточно, а для обработки изображения и мкс не хватит. Главное, что разработчик может сказать: "событие Х будет обработано в течение времени не более Y" - это и есть жесткое РВ. Возможны варианты, типа, "событие Х начнется обрабатываться через время не более Y", или "событие Х в среднем обрабатывается через время Y" (мягкое РВ).
Вывод: Interrupt Latency есть важный показатель качества, но не влияет на собственно РВ.
Если у Вас есть другие соображения - предлагаю обсудить отдельно, поскольку это, в общем, не относится к теме.
По теме:
Если надо быстро, то на AVR можно попробовать сделать следующее:
1. Использовать вложенные прерывания (типа в обработчике UART разрешать прерывания от ADC или, например, обработку протокола осуществлять в обработчике прерывания от UART, но с разрешенными прерываниями). Этот подход - самый экономный по ресурсам и с наименьшей реакцией, может применяться если нет спорадических событий. Требует внимательности - стек и т.п.
2. Можно сделать монитор, либо по опросу (выставлять флаг и обрабатывать), либо вытесняющий - выставлять флаг какого-нибудь неиспользуемого прерывания, тогда по выходу из текущего, обработчик сразу же зайдет в обработчик.
На будущее, думаю, лучше изучить какую-либо RTOS:
вытесняющие:
scmRTOS или uCOS или C kernel или XMK
кооперативные:
Salvo, JacOS, proc
другие smile.gif
Nesos
Успехов!
Go to the top of the page
 
+Quote Post
dxp
сообщение Feb 14 2006, 08:18
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(TMX @ Feb 14 2006, 13:41) *
кооперативные:
Salvo, JacOS, proc
другие smile.gif
Nesos
Успехов!

proc, вроде, всегда вытесняющей была.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- arttab   Основной цикл или обработчик прерываний   Oct 4 2005, 04:46
- - Andy Mozzhevilov   Цитата(arttab @ Oct 4 2005, 09:46)Кто какими ...   Oct 4 2005, 05:09
- - Born   Если в прерываниях не используютчя таймеры (то ест...   Oct 4 2005, 05:24
- - arttab   мк AVR. и операционка отпадает   Oct 4 2005, 05:31
|- - Andy Mozzhevilov   Цитата(arttab @ Oct 4 2005, 10:31)мк AVR....   Oct 4 2005, 05:36
||- - Evgeny_CD   Цитата(Andy Mozzhevilov @ Oct 4 2005, 09:36)м...   Oct 5 2005, 08:50
||- - dxp   Цитата(Evgeny_CD @ Oct 5 2005, 14:50)Цитата(A...   Oct 5 2005, 10:44
|- - upc2   Цитата(arttab @ Oct 4 2005, 08:31)мк AVR....   Oct 4 2005, 06:58
- - kons   Я эту проблему решал (на AVR же) путем введения тр...   Oct 4 2005, 07:21
|- - dxp   Цитата(kons @ Oct 4 2005, 13:21)Я эту проблем...   Oct 4 2005, 12:34
|- - defunct   Цитата(kons @ Oct 4 2005, 09:21) Идея в с...   Feb 10 2006, 08:26
- - kons   На AVR (mega103/128). Только RTOS - несколько гром...   Oct 4 2005, 13:59
- - Olxx   Если не жалко отдать 5-10% циклов на overhead план...   Oct 5 2005, 01:17
|- - TMX   Цитата(Olxx @ Oct 5 2005, 04:17) А если п...   Feb 13 2006, 11:40
|- - defunct   Цитата(TMX @ Feb 13 2006, 13:40) Если обр...   Feb 13 2006, 21:15
|- - dxp   Цитата(defunct @ Feb 14 2006, 03:15) Цита...   Feb 14 2006, 07:32
|- - defunct   Цитата(dxp @ Feb 14 2006, 09:32) Это как ...   Feb 14 2006, 12:08
- - arttab   Спасибо за ваши мнения. Интересный вопрос я задал....   Oct 5 2005, 03:55
- - Seishel   релиз простой, если вам необходимо мгновенно обраб...   Feb 9 2006, 15:46
- - TMX   Цитата(dxp @ Feb 14 2006, 11:18) proc, вр...   Feb 14 2006, 09:53


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

 


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


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