- 
	- Пока вычеркиваем - интересует просто вариант решения без глобальных и extern - MBedder(27.04.2013 16:12)
			- Так а в чем вопрос? Обращение к глобальной переменной всегда можно заменить вызовом интерфейсной функции модуля, в которой будет обращение к скрытой в этом модуле переменной. Такой подход применим везде, и везде он даёт ухудшение эффективности. - Леонид Иванович(27.04.2013 19:22)
					- Конечно. Зато, в случае применения ОСРВ (извиняюсь за выражение)имеем универсальность подхода и прочие плюсы. - tesla(27.04.2013 19:39)
- А какие интерфейсные функции могут быть у ISR? - MBedder(27.04.2013 19:29)
							- ISR принадлежит модулю и работает с приватными данными модуля. Другой модуль получает доступ к этим данным через интерфейсные функции.   Леонид Иванович(539 знак., 27.04.2013 19:39 - 19:56)
									- Ну давай предельно упростим мою модель - ISR складывает данные в кольцевой буфер и, получив CRLF, выставляет флаг и обновляет указатель LastBytePtr. Фон, увидев этот флаг, обрабатывает данные от LastBytePtr до предыдущего CRLF - как всей  MBedder(20 знак., 27.04.2013 20:07)
											- Фон должен не читать напрямую флаг, а вызвать функцию, которая вернёт значение этого флага. Да, лишние накладные, зато очень легко вносить изменения в реализацию и таскать модули между проектами. - =AlexD=(27.04.2013 20:54)
													- В принципе согласен, но жаба душит из-за накладных - MBedder(27.04.2013 20:58)
															- у меня что-то подобное. накладные уменьшаю тем, что имею возможность сделать кольцевые буфера (куда всё складывает даже не софт, а DMA) оочень большими, такими, чтобы с запасом хватило при любых затыках, если они вдруг будут. - Mahagam(28.04.2013 00:41)
																	- Это само собой, но иногда памяти впритык, а иногда и ДМА нетути - MBedder(28.04.2013 00:42)
 
- Любая красота в программе вредит её эффективности. Но ведь предназначение человека - создавать в первую очередь красивые вещи, и только во вторую - работоспособные. - Леонид Иванович(27.04.2013 21:42)
																	- Я всю жизнь стремлюсь создавать красивые работоспособные вещи - пока получалось :)) - MBedder(27.04.2013 21:51)
																			- Красивые и работоспособные - это вообще идеал.  Леонид Иванович(135 знак., 27.04.2013 21:57)
																					- Я для РС написал всего несколько программ - на Васике в конце 80-х и на TASM в 90-х, и больше туда не совался (и не собираюсь) - MBedder(27.04.2013 22:16)
																							- Увы, для сопроводжения "всякого своего дерьмеца", приходится, как минимум, вяско-разно "помахать дельфями". Например, для сопряжения с 1С делами. Или для конфигурирования этого "всякого своего дерьмеца". - Гудвин(27.04.2013 22:34)
																									- РС-шную задачу я легко могу сформулировать программисту, а МК-шную - с очень большим трудом и непредсказуемым результатом. Вот и пишу для МК сам, а для РС держу пару придворных щелкоперов :)) - MBedder(28.04.2013 00:21)
																											- Так речь не идет о том, что нужно собственноручно писать программы для PC. Просто на "взрослых" машинах ушли далеко вперед в вопросах архитектуры программ. Особенно с использованием ООП. Микроконтролерщики варятся в собственном соку, а правильнее  Леонид Иванович(51 знак., 28.04.2013 02:18)
																													- там просто есть ресурсы на то, чтобы каждый класс задач реализовывать на своём языке. зачастую ни разу не оптимальном с точки зрения скорости исполнения, зато средства языка оптимальны для задачи. а даже eLua далеко не во всякий контроллер влезет. - Mahagam(28.04.2013 05:40)
- Скорее не опыт, а стиль, архитектуру и приемы - MBedder(28.04.2013 02:34)
 
- Ну у меня такой роскоши нет :) 1С программеры свое дело делают.  Туда лезу только для "накропать OLE приблудку"+ "тестилку" для совокупления. - Гудвин(28.04.2013 00:29)
																													- "Делиться надо!"(с) Лившиц, R.I.P. :(( - MBedder(28.04.2013 00:44)
 
 
- Так речь не идет о том, что нужно собственноручно писать программы для PC. Просто на "взрослых" машинах ушли далеко вперед в вопросах архитектуры программ. Особенно с использованием ООП. Микроконтролерщики варятся в собственном соку, а правильнее  Леонид Иванович(51 знак., 28.04.2013 02:18)
																													
 
- РС-шную задачу я легко могу сформулировать программисту, а МК-шную - с очень большим трудом и непредсказуемым результатом. Вот и пишу для МК сам, а для РС держу пару придворных щелкоперов :)) - MBedder(28.04.2013 00:21)
																											
 
- Увы, для сопроводжения "всякого своего дерьмеца", приходится, как минимум, вяско-разно "помахать дельфями". Например, для сопряжения с 1С делами. Или для конфигурирования этого "всякого своего дерьмеца". - Гудвин(27.04.2013 22:34)
																									
 
- Я для РС написал всего несколько программ - на Васике в конце 80-х и на TASM в 90-х, и больше туда не совался (и не собираюсь) - MBedder(27.04.2013 22:16)
																							
 
- Красивые и работоспособные - это вообще идеал.  Леонид Иванович(135 знак., 27.04.2013 21:57)
																					
 
- Я всю жизнь стремлюсь создавать красивые работоспособные вещи - пока получалось :)) - MBedder(27.04.2013 21:51)
																			
- "Самый страшный зверь - это жаба. Она душила многих наших современников." А если серьёзно, то пока измерения не покажут необходимость оптимизации, то вся эта гонка за эффективностью - пустая трата драгоценного времени. - SciFi(27.04.2013 21:06)
- С++ рулит, флаг может быть статическим членом класса, а функция инлайновой. Тогда накладных нет. - =AlexD=(27.04.2013 21:00)
																	- Не факт. Есть ведь мелие MCU. - tesla(27.04.2013 21:07)
																			- Для мелких С++ вдвойне востребован. Если он вообще есть в наличии. - =AlexD=(27.04.2013 21:08)
																					- Эт чем же он востребован? Будем писать классы для ATtiny2313 ?  tesla(25 знак., 27.04.2013 21:21)
																							- для ATtiny2313 ? Не, не классы. Шаблоны! - =AlexD=(27.04.2013 21:56)
 
 
- Эт чем же он востребован? Будем писать классы для ATtiny2313 ?  tesla(25 знак., 27.04.2013 21:21)
																							
 
- Для мелких С++ вдвойне востребован. Если он вообще есть в наличии. - =AlexD=(27.04.2013 21:08)
																					
- Ага, ща я попрусь в С++, едва вступив в С :)) - MBedder(27.04.2013 21:04)
																			- Ага :-)  бомж(28.04.2013 00:21)
																					- :)) - MBedder(28.04.2013 00:25)
 
- Пожалуй, поддержу призыв посмотреть в сторону C++. Монстроподобность его слишком преувеличена теми, кто с ним не знаком. - Леонид Иванович(27.04.2013 21:44)
																					- Может быть, может быть - но явно не в этой жизни :)) - MBedder(28.04.2013 00:22)
 
- Лучше не задерживайся на полдороге :-) - =AlexD=(27.04.2013 21:08)
																					- "Не царское это дело - в п#зде ковыряться, прикажу - в&ебут!"(с) :)) - MBedder(27.04.2013 21:17)
 
 
- Ага :-)  бомж(28.04.2013 00:21)
																					
 
- Не факт. Есть ведь мелие MCU. - tesla(27.04.2013 21:07)
																			
 
- у меня что-то подобное. накладные уменьшаю тем, что имею возможность сделать кольцевые буфера (куда всё складывает даже не софт, а DMA) оочень большими, такими, чтобы с запасом хватило при любых затыках, если они вдруг будут. - Mahagam(28.04.2013 00:41)
																	
 
- В принципе согласен, но жаба душит из-за накладных - MBedder(27.04.2013 20:58)
															
 
- Фон должен не читать напрямую флаг, а вызвать функцию, которая вернёт значение этого флага. Да, лишние накладные, зато очень легко вносить изменения в реализацию и таскать модули между проектами. - =AlexD=(27.04.2013 20:54)
													
 
- Ну давай предельно упростим мою модель - ISR складывает данные в кольцевой буфер и, получив CRLF, выставляет флаг и обновляет указатель LastBytePtr. Фон, увидев этот флаг, обрабатывает данные от LastBytePtr до предыдущего CRLF - как всей  MBedder(20 знак., 27.04.2013 20:07)
											
- Долго думал. Думал, может я не прав. Нет, ни фига. Никаких интерфейсных функций у ISR быть не может! - tesla(27.04.2013 19:44)
- Хорошо задал вопрос. А то ить некоторые предполагают, что вызов функции из прерывания - это самое оно. tesla(129 знак., 27.04.2013 19:35)
 
- ISR принадлежит модулю и работает с приватными данными модуля. Другой модуль получает доступ к этим данным через интерфейсные функции.   Леонид Иванович(539 знак., 27.04.2013 19:39 - 19:56)
									
 
 
- Так а в чем вопрос? Обращение к глобальной переменной всегда можно заменить вызовом интерфейсной функции модуля, в которой будет обращение к скрытой в этом модуле переменной. Такой подход применим везде, и везде он даёт ухудшение эффективности. - Леонид Иванович(27.04.2013 19:22)
					
 
- Пока вычеркиваем - интересует просто вариант решения без глобальных и extern - MBedder(27.04.2013 16:12)