<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Организация программ. Событийная система (Event driven system)</title>
		<description>Discuss Организация программ. Событийная система (Event driven system)</description>
		<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html</link>
		<lastBuildDate>Sat, 18 Apr 2026 12:41:25 +0000</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://chipenable.ru/index.php/component/jcomments/feed/com_k2/47.html" rel="self" type="application/rss+xml" />
		<item>
			<title>Keroronsk says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-5351</link>
			<description><![CDATA[Попробовал открыть страницу с событийной таблицей (73-sobytijnaja -sistema-na-tab lice.html), а там вирь. Можно что-то сделать с этим?]]></description>
			<dc:creator>Keroronsk</dc:creator>
			<pubDate>Wed, 01 Nov 2017 05:45:30 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-5351</guid>
		</item>
		<item>
			<title>hhhh says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4937</link>
			<description><![CDATA[Полностью поддерживаю сам написал штуки 3 таких программ пока до меня дошло что оно мне и не надо вовсе. Теперь у меня крутятся в цикле автоматы вызываемые последовательно и все прекрасно успевают.]]></description>
			<dc:creator>hhhh</dc:creator>
			<pubDate>Thu, 03 Nov 2016 12:44:58 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4937</guid>
		</item>
		<item>
			<title>pooh says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4570</link>
			<description><![CDATA[ну ни кокая это не Event driven system. Шикарная система прерываний с нивелирована к тупому polling - запросов от оборудования. Почему предлагаемый способ плох в контроллера с ограниченным размером памяти ? Буфер в системе маловат и возможна потеря событий и не только событий. Да и нет большого смысла складывать эти события в кольцевой буфер. Эти запросы всё одно торчат в регистрах оборудования чипа в виде запросов на обслуживание. Ну так и опрашивай в цикле эти запросы и не морочь себе голову с кольцевым буфером.]]></description>
			<dc:creator>pooh</dc:creator>
			<pubDate>Wed, 19 Aug 2015 03:48:33 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4570</guid>
		</item>
		<item>
			<title>hes says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4564</link>
			<description><![CDATA[Ну отослать 2 разных символа это что две разные функции? Понятно что нет но они символ возьмут либо из переменной либо из очереди/буфера. На счёт глобального буфера эта система и есть оно самое, зачем еще что-то аналогичное. Да и к месту говоря функцию "Взять событие" , вернее часть её кишок закинул в диспетчер, пускай при нуле в буфере на пустышку идет, там тоже может быть добро. /дма - да будь такое, rtos и все дела, там кстати так же кольцевые буфера всюду для передачи.]]></description>
			<dc:creator>hes</dc:creator>
			<pubDate>Thu, 06 Aug 2015 18:46:36 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4564</guid>
		</item>
		<item>
			<title>Vlad says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4561</link>
			<description><![CDATA[глобальный (кольцевой) буфер, событие иницирует передачу/вывод, дальше прерывания/дма. у себя делат. так, чтобы на каждую пару состояние+событ ие была одна функция которая делает одно конкретное действие. так гораздо проще сопровождать программу и не заблудиться в логике.]]></description>
			<dc:creator>Vlad</dc:creator>
			<pubDate>Thu, 06 Aug 2015 05:18:40 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4561</guid>
		</item>
		<item>
			<title>hes says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4560</link>
			<description><![CDATA[Да я тут попутал с приведениями, поскольку ими не пользовался. Тут разобрался наконец. По новому будет так: Положить событие: void ES_PlaceEvent(u nsigned char event,unsigned char message)
{ // Первый параметр код событие, второй - параметр для функции обработчика if (countBuf < SIZE_BUF){ //если в буфере еще есть место cycleBuf[tailBu f] = (event8)) { case 1: open(message);b reak; case 2: send_uart(messa ge);break; case 3: EmptyFunc(messa ge);break; }
} Всё это дело работает в железе,второй параметр функции "Положить событие" проваливается до исполнителя. Влад, как зачем? ну например хочу печатать на экран значение. Куды проще отправить его вместе с событием чем через внешние переменные, или в COM-порт так же отправить символ. В конце концов никто не заставляет обработчикам отправлять сообщения. А я делаю открыватель двери по сканеру отпечатка пальца, есть экран, несколько кнопок и замок. Вот думаю.]]></description>
			<dc:creator>hes</dc:creator>
			<pubDate>Wed, 05 Aug 2015 18:24:26 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4560</guid>
		</item>
		<item>
			<title>Vlad says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4557</link>
			<description><![CDATA[Теперь вопрос, будет ли сиё работать? О... нечто подобное я и имел в виду. у меня встречный вопрос -- а зачем обработчикам передавать какие-либо сообщения? не поделитесь исходной проблемой?]]></description>
			<dc:creator>Vlad</dc:creator>
			<pubDate>Mon, 03 Aug 2015 10:30:09 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4557</guid>
		</item>
		<item>
			<title>hes says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4556</link>
			<description><![CDATA[Немного переделал но пока не тестировал. Массив теперь unsigned int static volatile unsigned int cycleBuf[SIZE_B UF];// старшие 8 бит код события, мл-параметр обработчику Так же изменились прототипы функций
unsigne d int ES_GetEvent(voi d);//взять код собыитя
void ES_PlaceEvent(u nsigned char event,unsigned char message);//разм естить событие
void ES_Dispatch(uns igned int event); //вызов диспетчера К функции положить событие добавился параметр для обработчика. void ES_PlaceEvent(u nsigned char event,unsigned char message)
{ if (countBuf < SIZE_BUF){ //если в буфере еще есть место cycleBuf[tailBu f] = ((unsigned int)event8){ case 1: EmptyFunc(messa ge);break; case 2: EmptyFunc(messa ge);break; case 3: EmptyFunc(messa ge);break; }
} Ну и майн: while(1){ event = ES_GetEvent(); if (event>>8) ES_Dispatch(eve nt); } Теперь вопрос, будет ли сиё работать?]]></description>
			<dc:creator>hes</dc:creator>
			<pubDate>Mon, 03 Aug 2015 10:20:24 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4556</guid>
		</item>
		<item>
			<title>hes says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4555</link>
			<description><![CDATA[Добавление еще одного буфера по такой схеме будет сложней чем сама эта событийная система. Например его сортировка и изъятие "сообщения" с середины. Гораздо интересней будет переделать функцию ES_PlaceEvent() добавив вторым параметром сообщение обработчику.Ну и научить диспетчер передавать параметр. Очередь вырастит только вширь. Кто шарит попробуйте сделать так.]]></description>
			<dc:creator>hes</dc:creator>
			<pubDate>Mon, 03 Aug 2015 08:12:35 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4555</guid>
		</item>
		<item>
			<title>Влади says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4554</link>
			<description><![CDATA[ Насколько я это всё понимаю -- нужно все функции делать с одинаковыми параметрами. Гораздо проще, ИМХО, сделать подобие почтовой системы. "почтовый ящик" -- какой-либо буфер, в который складывать "сообщения" в формате "id получателя; код сообщения". а оброботчики уже будут разгребать этот бефер.]]></description>
			<dc:creator>Влади</dc:creator>
			<pubDate>Sat, 01 Aug 2015 17:41:32 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4554</guid>
		</item>
		<item>
			<title>hes says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4552</link>
			<description><![CDATA[А как бы передать еще и параметры функциям-обрабо тчикам?]]></description>
			<dc:creator>hes</dc:creator>
			<pubDate>Sat, 01 Aug 2015 15:05:27 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4552</guid>
		</item>
		<item>
			<title>FreshMan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4119</link>
			<description><![CDATA[ дайте пожалуйста ссылки на первоисточники :-)]]></description>
			<dc:creator>FreshMan</dc:creator>
			<pubDate>Sun, 08 Jun 2014 04:45:28 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-4119</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2811</link>
			<description><![CDATA[Хорошо. Не успел тебе ответить. В статье по событийной системе на таблице в проекте для WinAvr так и сделано.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Fri, 12 Apr 2013 11:59:34 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2811</guid>
		</item>
		<item>
			<title>Vlad says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2807</link>
			<description><![CDATA[Разобрался. В моём случае заработало так: void (*pFunc)(void); pFunc = ((void*)pgm_rea d_word(&Transit ionTable[curr_e vent][curr_stat e].func)); pFunc();]]></description>
			<dc:creator>Vlad</dc:creator>
			<pubDate>Fri, 12 Apr 2013 07:36:18 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2807</guid>
		</item>
		<item>
			<title>Vlad says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2803</link>
			<description><![CDATA[Извиняюсь -- пропустил при наборе: TransitionTable [curr_event][cu rr_state].func( ); // вызов функции next_state = TransitionTable [curr_event][cu rr_state].NStat e; // смена состояния]]></description>
			<dc:creator>Vlad</dc:creator>
			<pubDate>Thu, 11 Apr 2013 10:46:07 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2803</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2802</link>
			<description><![CDATA[А как работает, если ты обращаешься к элементу двумерного массива, а поле структуры не указываешь?]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Thu, 11 Apr 2013 09:51:32 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2802</guid>
		</item>
		<item>
			<title>Vlad says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2801</link>
			<description><![CDATA[Добрый день! сделал обработчик событий на таблице. хочу таблицу хранить в PROGMEM, но не получается сделать вызов функции в таком случаем. Может подскажете как это сделать? строка таблицы имеет такой тип: typedef struct {	byte NState; // Next State	void (*func)(void); // State-Event Handler Function } t_TT_Row; таблицу объявляю так: const t_TT_Row TransitionTable [2][2] = { {{ns1,func1},{n s2,func2}}, {{ns3,func3},{n s4,func4}} }; далее, в main, делаю так: curr_event = get_event(); TransitionTable [curr_evetn][cu rr_state](); // вызов функции next_state = TransitionTable [curr_evetn][cu rr_state]; // смена состояния так всё работает. но если обхявляю талицу как PROGMEM (gcc), то новое состояние получаю через pgm_read_byte. А как вызывать функцию в этом случае -- понять не могу. Надеюсь на Вашу помощь.]]></description>
			<dc:creator>Vlad</dc:creator>
			<pubDate>Thu, 11 Apr 2013 08:06:21 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2801</guid>
		</item>
		<item>
			<title>Luckonov says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2074</link>
			<description><![CDATA[скажите Pashgan почему вы выбрали именно массив указателей на функции обработчики, вместо case. Какие приемущества? (кроме наверно скорости, но так ли суещственно)]]></description>
			<dc:creator>Luckonov</dc:creator>
			<pubDate>Thu, 29 Mar 2012 00:10:18 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2074</guid>
		</item>
		<item>
			<title>wukrlvy says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2022</link>
			<description><![CDATA[Все перечисленные выше варианты программировани я имеют определенные названия в зарубежной литературе. Ничего нового. Только все эти варианты надо еще раскопать.]]></description>
			<dc:creator>wukrlvy</dc:creator>
			<pubDate>Tue, 21 Feb 2012 21:02:13 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2022</guid>
		</item>
		<item>
			<title>wukrlvy says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2012</link>
			<description><![CDATA[Золотая серединка, обычно, лежит посредине. 1) в вариате с бесконечным циклом обычно анализируются флаги. Они очень быстро устанавливаются и быстро анализируются. Если надо очень быстро, флаг размещается в регистре. Поскольку флаги - это биты, их можно группировать в байты и одной командой проверки сразу проверять группу. Вот вы получили не линейную очередь, а дерево. Организуйте его так, как Вам надо. 2) описанный выше диспетчер может быть элементом этого дерева. Естественно, Вы не будете гонять диспетчер, если у Вас события происходят каждые 10 мкс. Ето всего 100 AVR-команд. Эти события Вы обработаете на предыдущем уровне. 3) система прерываний у AVR одноранговая. Т.е. она не допускает вложенных прерываний. Если Вы сами не позволите ей это делать. Для этого в конкретной программе обработки прерывания, в которой допустимо, вы разрешаете прерывание. А, чтобы прерывания не мешали друг - другу, Вы так продумываете работу в прерываниях, чтобы не мешать другим. Например, все, что можно сделать за 5 мкс, (50 команд AVR). 4) раз программа диспетчера достаточно проста, Вы можете себе позводить создать в системе несколько очередей с разным приоритетом. Кроме того, следя за счетчиком FIFO, Вы можете менять приоритеты очередей. Приоритеты меняет тот бесконечный цикл, который висит выше диспетчера. 5) в микроконтроллер е Вы работаете без операционной системы, и переключение между задачами Вы должны организовать сами, с нуля.]]></description>
			<dc:creator>wukrlvy</dc:creator>
			<pubDate>Wed, 08 Feb 2012 19:14:38 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-2012</guid>
		</item>
		<item>
			<title>Інший Сергій says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-1559</link>
			<description><![CDATA[Черга з організацією FIFO працює тільки за умови однорангових подій!. А що робити коли події мають різний приорітет? "Перетасовувати " чергу? А якщо подія настільки важлива, що потрібно перервати обробку поточної події?]]></description>
			<dc:creator>Інший Сергій</dc:creator>
			<pubDate>Sat, 25 Jun 2011 22:21:07 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-1559</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-844</link>
			<description><![CDATA[Ничего не могу посоветовать, потому что не попадались такие книги.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 05 Dec 2010 16:14:26 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-844</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-843</link>
			<description><![CDATA[Зачем вырывать слова из предложения? Речь ведь не только о бесконечном цикле. ]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 05 Dec 2010 16:13:53 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-843</guid>
		</item>
		<item>
			<title>Ecole says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-842</link>
			<description><![CDATA["Стандартный подход к построению микроконтроллер ных программ сводится к использованию бесконечного цикла" Собственно и здесь этот цикл присутствует. Просто здесь - более удобная (для программиста) организация программы. Вероятно во многих случаях еще более удобным будет использование RTOS.]]></description>
			<dc:creator>Ecole</dc:creator>
			<pubDate>Fri, 03 Dec 2010 15:04:54 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-842</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-460</link>
			<description><![CDATA[Спасибо за статью! Не подскажете, в какой литературе можно почитать про такую организацию программ?]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Sun, 20 Jun 2010 17:37:59 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-460</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-321</link>
			<description><![CDATA[Событийная система на таблице - http://chipenable.ru/index.php/programming-c/73-sobytijnaja-sistema-na-tablice.html]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sat, 17 Apr 2010 06:07:04 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-321</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-318</link>
			<description><![CDATA[ Я нигде не могу найти пример реализации... Если есть время, напиши хотябы краткую статью про это, я думаю многим будет интересно]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Fri, 16 Apr 2010 19:52:57 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-318</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-158</link>
			<description><![CDATA[Для реализации меню очень удобно использовать событийную систему на таблицах. По-крайней мере на своих устройствах все менюшки я делаю именно так.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 01 Feb 2010 18:49:08 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-158</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-157</link>
			<description><![CDATA[Интересная статья ) самостоятельно к таким решениям не сразу приходишь ) Подобный подход с указателями на функции удобно использовать для организации различных вложенных меню на LCD, которые потом можно гибко изменять и реагировать на различные события]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Mon, 01 Feb 2010 09:47:41 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-157</guid>
		</item>
		<item>
			<title>foxit says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-147</link>
			<description><![CDATA[Ждем пример практической реализации.]]></description>
			<dc:creator>foxit</dc:creator>
			<pubDate>Mon, 25 Jan 2010 17:33:26 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-147</guid>
		</item>
		<item>
			<title>alexandershahbazov says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-146</link>
			<description><![CDATA["Стандартный подход к построению микроконтроллер ных программ сводится к использованию бесконечного цикла, внутри которого происходит опрос флагов, и вызываются разные функции." Вышесказанное всегда сидело у меня в голове как только я приступал к написанию новой программы . Этот while(1) я уже принял как необходимость . Спасибо за статью .]]></description>
			<dc:creator>alexandershahbazov</dc:creator>
			<pubDate>Mon, 25 Jan 2010 14:09:27 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/47-organizatsiya-programm-sobytiynaya-sistema-event-driven-system.html#comment-146</guid>
		</item>
	</channel>
</rss>
