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

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

|
Кто какими критериями пользуется выбирая место размещения вызовов функций? В главном цикле, обработчике прерываний или по условию из глав. цикла. У меня в программе есть функции которые имеет смысл вызывать при прерываниях: АЦП, УАРТ,.... если они будут в глав. цикле - увеличится длительность цикла. если в обработчике, то длительность обработки, если по условию, то нужно больше создавать программных флагов (по условию). Кто как решает?
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
 |
Ответов
|
Oct 4 2005, 07:21
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035

|
Я эту проблему решал (на AVR же) путем введения третьего дополнительного уровня, промежуточного между головной программой и обработчиком прерываний. Идея в следующем: - обработчик прерываний выполняет минимально необходимые действия (например, читает UDR), после чего вызвает обработчик среднего уровня. Ему передаются как параметры указатель на функцию, которую необходимо выполнить и, как опция, параметр для этой функции (например, считанное из UDR значение). - при вызове обработчик среднего уровня записывает принятые параметры в FIFO и смотрит, что было прервано - головная программа или выполнение функций из этого FIFO (по спец.флагу). Если головная программа, то флаг взводится и запускается выполнение из FIFO. Если же было прервано выполнение из FIFO (флаг уже стоял), то управление туда и возвращается. - выполнение из FIFO идет при разрешенных прерываниях, отуда выбирается указатель на очередную функцию и параметр для нее, затем функция вызывается. После возврата из функции лезем в FIFO за следующей и, если там пусто - сбрасываем флаг и возвращаем управление головной програме.
|
|
|
|
|
Feb 10 2006, 08:26
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(kons @ Oct 4 2005, 09:21)  Идея в следующем: - обработчик прерываний выполняет минимально необходимые действия (например, читает UDR), после чего вызвает обработчик среднего уровня. Я поступил несколько иначе, обработчики прерывания - выполняют необходимые действия только со своими собственными очередями, т.е. читая, например, UDR обработчик складывает принятые данные в свой FIFO и утанавливает программный флаг "присутствия новых данных" для своего FIFO. Промежуточный же уровень у меня - это диспетчер, которой работает в основном цикле программы, и запускает заданные ему при инициализации функции(задачи) взависимости от условий сформированных обработчиками прерываний (изменение времени, наличие новых данных во входных очередях UART(ов)/ADC и т.п.).
|
|
|
|
Сообщений в этой теме
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 dxp Цитата(kons @ Oct 4 2005, 13:21)Я эту проблем... Oct 4 2005, 12:34 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 ЦитатаНе скажите, предсказуемость наоборт нарушитс... Feb 14 2006, 07:41 dxp Цитата(TMX @ Feb 14 2006, 13:41) кооперат... Feb 14 2006, 08:18 TMX Цитата(dxp @ Feb 14 2006, 11:18) proc, вр... Feb 14 2006, 09:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|