- 
	- Хотели ответов, получите, если не в тему, снесите. "Чего только русские не придумают, что бы дорог не строить", сказали японцы разглядывая ходовую часть а/м "Урал" :)  Chum_A(2352 знак., 06.07.2012 10:05)
			- в случае с CAN наверное не нужно было придумывать таймауты на получение ответа? Я имею в виду, что в CAN нет такого понятия как "запрос-ответ". А если бы это было нужно. Например: вы посылаете пакет по CAN какому0то устройству и ожидаете, что оно  bialix(183 знак., 06.07.2012 17:36)
					- У меня система с резервированием :(. Я должен быть уверен, что все абоненты CAN-сети живы, т.е. отчитались за положенное время. Если нет, то в работу вводится резерв. Выходные каскады умерших будут блокированы в обход CAN-а. - Chum_A(08.07.2012 20:14 - 20:24)
- Ну как обрабатывать, запускается подпрограмма проверки таймера, не вышло - выход. Вышло, ставится флаг, ну а дальше ваши действия. У AVR это флаг T регистра SREG. - mazur(06.07.2012 17:47)
							- Почему именно T? Он чем-то особенный? - Apтём(06.07.2012 18:16)
									- Потому что это пользовательский флаг. - mazur(06.07.2012 18:36)
- наверное тем, что слово timeout и регистр T начинаются с одной буквы? - bialix(06.07.2012 18:23)
											- Нет никакой связи между timeout и t. У меня многие функции используют этот флаг. Очень удобно. - mazur(06.07.2012 19:41)
													- Зачем такое? Какое тут удобство?Почему не возвращать результат функции через регистр? - Apтём(06.07.2012 20:06)
															- "результат функции через регистр" - шаблон. Зачем мне результат в регистре, если он бинарный? Да\нет. Только регистры зря трогать. - mazur(06.07.2012 20:09)
																	- А может не "шаблон", а устаявшееся, проверенное решение? Проверяли производительность/экономию?  Apтём(63 знак., 06.07.2012 20:27)
																			- Ваши вопросы указывают, что вы видимо не в курсе - mazur на ASM пишет, Си он пока еще не в силах освоить :) - rezident(06.07.2012 20:38)
																					- Я как-то думал что mazur начал осваивать(были такие сообщения), видать не освоил ещё. - Apтём(06.07.2012 21:33)
																							- Бывает такое: купил абонемент в спортзал (вот польза-то!), а ходить не стал. - SciFi(06.07.2012 22:13)
																									- Понятно :) - Apтём(06.07.2012 22:15)
 
 
- Бывает такое: купил абонемент в спортзал (вот польза-то!), а ходить не стал. - SciFi(06.07.2012 22:13)
																									
- Кстати, это интересно, сколько асмов? AVR был, есть ли ещё? SciFi(36 знак., 06.07.2012 20:40)
 
- Я как-то думал что mazur начал осваивать(были такие сообщения), видать не освоил ещё. - Apтём(06.07.2012 21:33)
																							
- Для AVR, если результат нужен бинарный, здесь и сейчас, я использую флаг T. - mazur(06.07.2012 20:30)
- Вы тут новенький, очевидно :-) - SciFi(06.07.2012 20:29)
																					- Вы правы, чтойто я? :)  Apтём(47 знак., 06.07.2012 20:37)
																							- Ничего зазорного, просто скучно читать одно и то же сотый раз :-) - SciFi(06.07.2012 20:39)
 
 
- Вы правы, чтойто я? :)  Apтём(47 знак., 06.07.2012 20:37)
																							
 
- Ваши вопросы указывают, что вы видимо не в курсе - mazur на ASM пишет, Си он пока еще не в силах освоить :) - rezident(06.07.2012 20:38)
																					
 
- А может не "шаблон", а устаявшееся, проверенное решение? Проверяли производительность/экономию?  Apтём(63 знак., 06.07.2012 20:27)
																			
 
- "результат функции через регистр" - шаблон. Зачем мне результат в регистре, если он бинарный? Да\нет. Только регистры зря трогать. - mazur(06.07.2012 20:09)
																	
 
- Зачем такое? Какое тут удобство?Почему не возвращать результат функции через регистр? - Apтём(06.07.2012 20:06)
															
- >>наверное тем, что слово timeout и регистр T начинаются с одной буквы? Apтём(52 знак., 06.07.2012 18:49)
 
- Нет никакой связи между timeout и t. У меня многие функции используют этот флаг. Очень удобно. - mazur(06.07.2012 19:41)
													
 
 
- Почему именно T? Он чем-то особенный? - Apтём(06.07.2012 18:16)
									
 
- Вот-вот! Ответ прямо в точку! Последний абзац -- суть квинтэссенция того, что пытался донести в своем длинном посте. bialix(460 знак., 06.07.2012 16:44)
- Это и есть event driven программирование. Таймер, да, может быть один на всю программу, но нужен механизм получения события, с последующим запуском функции, при достижении таймером заданного значения. Обернуть в одну функцию -- а зачем?  Только за  fk0(182 знак., 06.07.2012 11:17)
					- Завернуть все в одну функцию хочется (мне как минимум) потому что хочется избежать разрыва контекста между функцией запускающей выполнение операции и колбэком по заверешению операции. При использовании автоматов ровно точно такой же разрыв bialix(67 знак., 06.07.2012 16:50)
- Дык   Chum_A(723 знак., 06.07.2012 11:33)
							- Всё так. Всё точно так. +1111111многораз - bialix(06.07.2012 16:52)
 
 
- все эти таймеры легко вырождаются в один free-running - Vit(06.07.2012 10:10)
					- По сути это он и есть, только в извращённом виде. Но разговор-то не за таймеры, а за красивую обёртку для всех и вся и "со шлюхами" :). - Chum_A(06.07.2012 10:52)
							- да. именно. - bialix(06.07.2012 16:52)
 
 
- По сути это он и есть, только в извращённом виде. Но разговор-то не за таймеры, а за красивую обёртку для всех и вся и "со шлюхами" :). - Chum_A(06.07.2012 10:52)
							
 
- в случае с CAN наверное не нужно было придумывать таймауты на получение ответа? Я имею в виду, что в CAN нет такого понятия как "запрос-ответ". А если бы это было нужно. Например: вы посылаете пакет по CAN какому0то устройству и ожидаете, что оно  bialix(183 знак., 06.07.2012 17:36)
					
- Я делаю иначе:)  Vit(681 знак., 06.07.2012 09:22 - 09:30)
			- ну собственно такой подход я и упоминал в своей портянке. Он понятен, но как по мне слишком уж низкоуровневый. Слишком много надо писать вспомогательной мишуры, которая отвлекает от основной идеи алгоритма. Вот как я хотел бы упростить вашу  bialix(515 знак., 06.07.2012 17:00)
					- Тут есть моментики  Vit(530 знак., 06.07.2012 17:26)
							- не вижу пока что противоречий к тому, что я сказал. - bialix(06.07.2012 17:31)
									- Хм.. вроде как не противоречие. но Вы пытаетесь в т.ч. обернуть обработку ошибок, а я, если понадобится, специально запрошу диагностику (хотя такие случаи в моей практике крайне редки) - Vit(06.07.2012 18:06)
											- наверное без реальных примеров, что такое "запрошу диагностику" - получается непонятно.  bialix(310 знак., 06.07.2012 18:19)
													- конечно можно. просто мне не нужно. признаки ошибок взводятся (и/или снимаются) по месту возникновения, там же передаются в подсистему диагностики. при полном игноре это может быть "/dev/null".   Vit(151 знак., 06.07.2012 18:50)
															- да. - bialix(06.07.2012 19:03)
 
 
- конечно можно. просто мне не нужно. признаки ошибок взводятся (и/или снимаются) по месту возникновения, там же передаются в подсистему диагностики. при полном игноре это может быть "/dev/null".   Vit(151 знак., 06.07.2012 18:50)
															
 
- наверное без реальных примеров, что такое "запрошу диагностику" - получается непонятно.  bialix(310 знак., 06.07.2012 18:19)
													
 
- Хм.. вроде как не противоречие. но Вы пытаетесь в т.ч. обернуть обработку ошибок, а я, если понадобится, специально запрошу диагностику (хотя такие случаи в моей практике крайне редки) - Vit(06.07.2012 18:06)
											
 
- не вижу пока что противоречий к тому, что я сказал. - bialix(06.07.2012 17:31)
									
 
- Тут есть моментики  Vit(530 знак., 06.07.2012 17:26)
							
 
- ну собственно такой подход я и упоминал в своей портянке. Он понятен, но как по мне слишком уж низкоуровневый. Слишком много надо писать вспомогательной мишуры, которая отвлекает от основной идеи алгоритма. Вот как я хотел бы упростить вашу  bialix(515 знак., 06.07.2012 17:00)
					
 
- Хотели ответов, получите, если не в тему, снесите. "Чего только русские не придумают, что бы дорог не строить", сказали японцы разглядывая ходовую часть а/м "Урал" :)  Chum_A(2352 знак., 06.07.2012 10:05)