- 
	- Попробуй и так уже - не обязательно оптимальный для AVR, но без использования внешних переменных (dsp_buf) в теле функции  Vit(416 знак., 16.09.2013 17:33 - 17.09.2013 09:37, ссылка, ссылка)
			- Удивляюсь вам. У обычного Си приведение к типу void* происходит автоматически. Для чего вы переопределяете тип указателя явно? - Ксения(16.09.2013 23:03 - 17.09.2013 01:36)
					- и для чего же??? - Vit(17.09.2013 01:10)
 
- От strlen() тут проку мало, т.к. она ищет концевой нуль, а буфере этого нет. - Ксения(16.09.2013 21:26)
					- тут она считает длину строки и к буферу не имеет отношения - Vit(16.09.2013 22:48)
 
- За пример strlen благодарю. А то тут мне уже материться обещали, я и постеснялся спросить :) - Mazur(16.09.2013 21:14)
 
- Удивляюсь вам. У обычного Си приведение к типу void* происходит автоматически. Для чего вы переопределяете тип указателя явно? - Ксения(16.09.2013 23:03 - 17.09.2013 01:36)
					
- Кстати, а разница между этими двумя вариантами есть? - Bill(16.09.2013 16:26)
			- Нет. - Mazur(16.09.2013 17:11)
 
- while() здесь победил, поскольку такой код ... ближе всего к ассемблеру! :) Именно так бы мы организовали цикл на ассемблере - на убывании счетчика, а не на его возрастании. Так же был когда-то организован цикл на Fortran'е. А у процессоров x86  Ксения(1127 знак., 16.09.2013 15:50 - 15:58)
			- Первое на что я обратил внимание в for, что практически во всех примерах инкремент, а не декремент. Хотя декремент выгоден по тактам. Да и по коду. - Mazur(16.09.2013 21:17)
- Так, опять же, цикл и в случае while можно и на возрастание организовать. - Bill(16.09.2013 16:23)
 
- Плохой пример. Внутри функции отсутствует проверка на выход за границы диапазона массива. Чревато непредсказуемыми глюками. - rezident(16.09.2013 15:18)
			- Да, полезно писать assert(n>=0 && n<SIZE); - fk0(16.09.2013 15:20)
					- Уууу. >= даст Вам вечность. А n<SIZE спокойно разрешит выход за диапазон (если начальная x=SIZE-2, а n=3). Но Вы правильно мыслите. Здесь ИМХО уместно применить не какие-то левые x и n, а делать ClrStr(from,to). Тогда и проверять диапазон легче. - Юра(16.09.2013 22:58,  ) )
- Как в моем примере правильно применить? - Mazur(16.09.2013 15:36)
							- Не надо вам assert - это лишний код :) - Ксения(16.09.2013 15:57)
 
 
- Уууу. >= даст Вам вечность. А n<SIZE спокойно разрешит выход за диапазон (если начальная x=SIZE-2, а n=3). Но Вы правильно мыслите. Здесь ИМХО уместно применить не какие-то левые x и n, а делать ClrStr(from,to). Тогда и проверять диапазон легче. - Юра(16.09.2013 22:58, 
 
- Да, полезно писать assert(n>=0 && n<SIZE); - fk0(16.09.2013 15:20)
					
- В большинстве CPU есть DJNZ или аналогичная инструкция (DECFSZ и GOTO у PIC, например). Т.е. эффективен будет такой код:  fk0(389 знак., 16.09.2013 15:12)
			- Просто Мазуру надо в свойствах компилятора включить генерацию асм-файлов и иногда заглядывать, что у него получается. Сравнить, например, что компилер сгенерит на while b на for. - VAI(16.09.2013 17:41)
					- В студии есть дизассемблер. Хотя я видел, выложенные листинги, где асм более нагляден. Есть ли в winavr такое?  Mazur(88 знак., 16.09.2013 19:06)
							- Я тебе уже говорил, как включить листинг в gcc. Твой winavr -- внутри на самом деле это gcc. - fk0(16.09.2013 19:41)
									- Ты про это? Ни хрена не изменилось. - Mazur(16.09.2013 19:54, ссылка)
											- Оппа. А твоя строчка не сохранилась. - Mazur(16.09.2013 19:55)
													- Включил опцию использовать файл такой-то. Строчка осталась. Но результата не вижу. - Mazur(16.09.2013 20:06)
															- Проблема большинства современных "программистов", в том, что они не умеют работать с компьютером.  Я поэтому и говорю -- изучай как в unix образца 80-х годов всё делалось. Там можно подсмотреть и понять. Изучать расположение крыжиков в виндовой  fk0(338 знак., 16.09.2013 22:39)
																	- Зря ты так. Крыжики сделали программирование доступным несметной орде ламеровкреативных индивидов :-) - SciFi(16.09.2013 22:48)- У них программирование заключается в подбирании такой комбинации крыжиков, пока не заработает? - fk0(16.09.2013 22:52)
																					- Не знаю, не пробовал. Если судить по Мазуру, то именно так :-) - SciFi(16.09.2013 22:58)
 
 
- У них программирование заключается в подбирании такой комбинации крыжиков, пока не заработает? - fk0(16.09.2013 22:52)
																					
- А-а-а! Диск отмонтировать забыла!... - Mazur(16.09.2013 22:42)
- PS: GUI нужно запретить. По крайней мере для обучения. - fk0(16.09.2013 22:40)
 
- Зря ты так. Крыжики сделали программирование доступным несметной орде 
 
- Проблема большинства современных "программистов", в том, что они не умеют работать с компьютером.  Я поэтому и говорю -- изучай как в unix образца 80-х годов всё делалось. Там можно подсмотреть и понять. Изучать расположение крыжиков в виндовой  fk0(338 знак., 16.09.2013 22:39)
																	
 
- Включил опцию использовать файл такой-то. Строчка осталась. Но результата не вижу. - Mazur(16.09.2013 20:06)
															
 
- Оппа. А твоя строчка не сохранилась. - Mazur(16.09.2013 19:55)
													
 
- Ты про это? Ни хрена не изменилось. - Mazur(16.09.2013 19:54, ссылка)
											
- Чтобы PORTA остался в дизасме? Наверное нет, но есть выходной файл имя_проекта.lss, в котором показано во что каждая строчка компилится. Примерно так выглядит:  Apтём(619 знак., 16.09.2013 19:18)
									- В дизасме хрен с ним. Скорее всего и не сделать так. А вот если бы листинг так создавался, было бы кошерно. - Mazur(16.09.2013 19:20)
											- Ну так создаётся же, или этот не устраивает? Чем? - Apтём(16.09.2013 19:23)
 
 
- В дизасме хрен с ним. Скорее всего и не сделать так. А вот если бы листинг так создавался, было бы кошерно. - Mazur(16.09.2013 19:20)
											
 
- Я тебе уже говорил, как включить листинг в gcc. Твой winavr -- внутри на самом деле это gcc. - fk0(16.09.2013 19:41)
									
 
- В студии есть дизассемблер. Хотя я видел, выложенные листинги, где асм более нагляден. Есть ли в winavr такое?  Mazur(88 знак., 16.09.2013 19:06)
							
- Первый вариант самый оптимальный, независимо от наличия инструкций типа djnz. - Bill(16.09.2013 15:29)
 
- Просто Мазуру надо в свойствах компилятора включить генерацию асм-файлов и иногда заглядывать, что у него получается. Сравнить, например, что компилер сгенерит на while b на for. - VAI(16.09.2013 17:41)
					
- То ли еще будет, ой-ёй-ёй... - Bill(16.09.2013 15:07)
 
- Попробуй и так уже - не обязательно оптимальный для AVR, но без использования внешних переменных (dsp_buf) в теле функции  Vit(416 знак., 16.09.2013 17:33 - 17.09.2013 09:37, ссылка, ссылка)