- Все. На данный момент застрял. Mazur(651 знак., 11.09.2013 08:58, dao, полностью)
- AMD рассказала о своём первом процессоре с ARM-архитектурой для "тяжелого встраиваемого" (типа сетевые маршрутизаторы) рынка -> --> AMD все больше дрейфует в сторону ASIC. - Evgeny_CD(10.09.2013 11:10, dao, ссылка, ссылка, полностью)
- Бр-р-р. Запутался. Не до конца разобрался. Есть массив. Буфер дисплея. Mazur(527 знак., 10.09.2013 00:04 - 00:27, dao, полностью)
- Как мне сделать следующее? Скажем, КА. В состояниях идентичные участки. Как сделать общую точку выхода? Что-то не вижу в K&R примеров. Goto? - Mazur(09.09.2013 22:35, dao, полностью)
- Не совсем понял, ты про одну точку входа под разными именами? Михаил Е.(3130 знак., 10.09.2013 13:32)
- Типа через ( . ) выкрутился. :) Mazur(1195 знак., 10.09.2013 10:12)
- Вот про что я говорил, (обновление дисплея пока еще не сделал, посимвольно, скажем раз в 1 мс): Mazur(1568 знак., 10.09.2013 09:30)
- Таки в функцию но... язык C крайне убог. В паскале, например, есть вложенные функции (имеющие доступ к переменным и функциям объемлющей функции, разумеется). В lisp, javascript, perl... аналогично. Даже в tcl (через upvar или uplevel). В C же fk0(584 знак., 09.09.2013 23:38)
- Вообще-то идентичный код принято выносить в функцию. - SciFi(09.09.2013 22:37)
- Облачить "идентичные участки" в функцию. Для очистки совести, inline функцию. - Скрипач(09.09.2013 22:37)
- Как на си делается сдвиг, циклический сдвиг? - Mazur(05.09.2013 20:41, dao, полностью)MBedder
- Епт! Посыпаю свою голову пеплом. Честно скажу, сегодня занят, читал невнимательно, понять не могу, о чем тут пишут, притом повторяются. Об одном и том же пишут. Щас опять мельком пробежался. И наткнулся на асмовскую строчку Mazur(107 знак., 06.09.2013 14:28 - 14:35)
- правильно сказано Nikolay801_(416 знак., 06.09.2013 10:07)
- Встречный вопрос.Как на машине с АКП вручную переключать передачи? - plainuser(06.09.2013 07:34)
- ...так же, как на 32-битке делается умножение dword на dword с последующим делением на dword, дающее в результате dword, без использования для промежуточного результата 64-битной переменной. Синтаксис варьируется, но суть его такова: Николай Коровин(1593 знак., 06.09.2013 03:32)
- Вот ещё одна очень полезная конструкция: i = ++i & 7; удобно использовать для выбора следующего шага шагового мотора, например. бомж(257 знак., 05.09.2013 21:44 - 22:51)
- инлайн асм в помощь - zeleny(05.09.2013 22:40)
- Для беззнаковых. Для знаковых лучше в процессе привести к беззнаковым, ибо операция сдвига для знаковых не очень определена. fk0(300 знак., 05.09.2013 21:09)
- Увы! Утилизация флагов переноса - слабое место у Си. Т.е. не могёт он этого делать. - Ксения(05.09.2013 20:59)
- Нету такой операции на Си. Apтём(252 знак., 05.09.2013 20:49)
- Вспомни спектрум и васик. Там мигалка для светодиовов была бы в 3 строчки (ну или около того). Вот и на сях должно быть столько же (на высоком уровне). Остальное - абстрагирование железа: драйвер или HAL - называй как хочешь. - SciFi(07.09.2013 22:06, dao, полностью)Cкpипaч
- У конечных автоматов есть прекрасная фишка. Можно реализовать самоинициализацию. То есть нулевое (первое) состояние можно сделать блоком инициализации модуля. Это позволяет создавать полностью автономные модули. Не нужно где-то в другом месте Mazur(27 знак., 07.09.2013 22:19)
- Есть разные способы описания процессов, среди них конечный автомат и обычный линейный код. Хорош тот способ описания, который короче и понятнее (всегда ваш, К.О.). Так вот, мигающая лампочка короче и понятнее описывается линейным кодом (ссылка). SciFi(37 знак., 07.09.2013 22:27, ссылка)
- В вашем delay кристалл зависает, пока идет задержка. - Mazur(07.09.2013 22:37)
- Понятность сильно зависит от доступного уровня абстракции, если кому-то доступен только цикл, то спорить не о чем ;) - Vladimir Ljaschko(07.09.2013 22:33)
- Автомобиль - Мерседес Брабус. Остальное компромиссы. *напомнило. - Скрипач(07.09.2013 22:31)
- Именно так, без шуток. Если начинать делать софт с компромиссов, то брабус никогда не получится, а куча говнокода - это всегда пожалуйста. - SciFi(07.09.2013 22:34)
- Автомат Калашникова это "брабус"? - Скрипач(07.09.2013 22:47 - 23:21)
- Вы широко обобщаете. Я имел в виду всего лишь преждевременную оптимизацию. SciFi(138 знак., 07.09.2013 23:03)
- Нет преждевременной оптимизации. Всего лишь сразу писать нормально, а не спешно говнокодить. - Mazur(07.09.2013 23:12)
- Вот это и есть преждевременная оптимизация :-) - SciFi(07.09.2013 23:26 - 23:29)
- Не буду спорить. На данный момент ситуация такова: здесь на форуме я получил информации на несколько порядков больше, чем из книжек. - Mazur(07.09.2013 23:30)
- Ну да, есть разные способы познания. Просто я привык черпать знания из литературы. Смею заметить, что в программировании это самый эффективный способ познания. А про преждевременную оптимизацию буду продолжать напоминать, пока в меня не начнут SciFi(433 знак., 07.09.2013 23:48)
- ВЫ НЕПРАВЫ. Скрипач(379 знак., 07.09.2013 23:58)
- Вы опять меня не поняли. Снова заужаю масштаб проблемы: преждевременная оптимизация в смысле "хватит считать эти долбаные байты и циклы, ибо проиграете гораздо больше, чем выиграете". SciFi(114 знак., 08.09.2013 00:05)
- Вы меня не переубедите научиться сразу писать так, чтобы не было лишних тактов, байтов, телодвижений. Это моя железобетонная позиция. - Mazur(08.09.2013 00:16)
- а ничего, что некоторая доля кода на сях тупо переносима. как писать оптимально под все архитектуры и (_._) не разорвать? - Mahagam(09.09.2013 22:21)
- Это называется зашоренность и экстремизм. Другими словами, ничего хорошего. - SciFi(09.09.2013 22:16)
- Не бывает ничего с идеальным, 100% КПД. Хорошо, когда КПД 80%. Ещё лучше, когда 90%. Но плохо, когда 95% и очень плохо, когда 99% -- потому, что в последних случаях не выполняется принцип Парето. Значит, за эти 19% пришлось заплатить гораздо fk0(463 знак., 08.09.2013 00:26)
- О байтах здесь речи не было. Есть три идеологии: Скрипач(106 знак., 08.09.2013 00:09)
- Не знаю: не владею предметом. Это вы по стрельбищу бегаете, так что расскажите. - SciFi(07.09.2013 22:52)
- Вопрос по выбору либы. Появилась задача перехватывать изображение с камеры, дорисовывать дополнительную информацию на фрейм и отображать на экране в realtime. Пока нашел OpenCV. Может кто посоветует, что нибудь еще? - framer(09.09.2013 21:14, dao, полностью)
- хе, вот суки, даже картонкой прикрыли чтоб ресурс съесть.. LordN(227 знак., 09.09.2013 08:16, dao, ссылка, полностью)
- slickedit 18 кто ставил? Лечили также как и 17-й? - abivan(09.09.2013 12:21, dao, полностью)
- Именно этого я и хотел, чтобы без лишних переменных. И я и подозревал, что компилятор так и сделает, передаст в регистры. Mazur(281 знак., 07.09.2013 17:46, dao, полностью)MBedder
- if(!proc_timer(ST_LED)){ - Скрипач(07.09.2013 21:23)
- Угу. - Mazur(07.09.2013 21:24)
- На счет регистра с возвращаемым значением. Тут не компилятор это дело решает в каждом отдельном случае, а регистр для этой цели застолблен в данном компиляторе навечно. Т.е. вы можете запомнить, через какой регистр(ы) передавливается u8 (u16), а Ксения(268 знак., 07.09.2013 18:16)
- Сброшенный флаг обычно проверяют так: if (~proc_timer(ST_LED) & (1<<0)), здесь оператор ~ изменяет все биты числа на обратные. - Ксения(07.09.2013 18:05)
- Ну, так, опять же, если иметь в виду "мелочную" оптимизацию, то данный вариант не является Bill(161 знак., 07.09.2013 18:12)
- Оставьте оптимизацию компилятору. В данном, конкретном, случае он справится. - Скрипач(07.09.2013 19:59)
- Нет! В данном случае не справится. ;) - Bill(07.09.2013 22:21)
- Это "вычисление констант на этапе компиляции". Инверсию перенесет в константу. Или нет? - Скрипач(07.09.2013 22:24)
- В том-то и дело, что нет. Вызов функции - не есть константа. - Bill(08.09.2013 00:34)
- Ваши сведения устарели. Включите режим "multifile compilation", "link time optimization" или как оно там называется в вашем компиляторе. А если нет такого режима, то сочувствую. - SciFi(08.09.2013 00:47)
- Вообще-то, у меня IAR AVR V5.51. А у вас какой? Да и потом, Bill(145 знак., 08.09.2013 00:56)
- Ну и зря не надеетесь на компилятор. Компилятор - друг программиста. Без друзей тяжко. SciFi(181 знак., 08.09.2013 01:01 - 01:03)
- Ну, во-первых, я со своим компилятором давно дружу, и он меня не подводит. А во-вторых, как следствие Bill(331 знак., 08.09.2013 01:13)
- "все получается автоматически". А что именно получается? - SciFi(08.09.2013 01:15)
- Оптимизация, естественно. Bill(122 знак., 08.09.2013 15:02 - 15:15)
- Вопрос: сколько было проектов, которые без этой оптимизации не работали? - SciFi(08.09.2013 15:43)
- Было три проекта, в которых мне пришлось заняться оптимизацией вручную. В одном - не хватало памяти, в двух других - скорости. - Bill(08.09.2013 15:56 - 16:28)
- А если в процентах? По Кнуту должно выйти 3% :-) - SciFi(08.09.2013 17:35, ссылка)
- С этим можно соглашаться, а можно и не согласиться. Тут все зависит от того, что именно Bill(387 знак., 08.09.2013 17:55)
- Во! В точку. Эффективное программирование. Спасибо, что за меня сказали. - Mazur(08.09.2013 18:13)
- Рано радуетесь. Эффективность каждый понимает по-своему. SciFi(252 знак., 08.09.2013 18:17)
- 1 - Тут всего лишь тот момент, что за меня сказали то, чего вы бы от меня не приняли. Типа "ты сначала хоть как-то научись программировать, потом уже можешь говорить об эффективном программировании". Mazur(201 знак., 08.09.2013 18:37)
- Ну, так, опять же, тут палка о двух концах. Что значит "убил несколько дней"? Еще раз повторю: я не занимаюсь оптимизацией специально. Я просто использую приемы, позволяющие создавать достаточно эффективные программы. И эти приемы ни от языка, ни Bill(627 знак., 08.09.2013 18:36)
- В компиляторах проф. уровня такого нет. - fk0(08.09.2013 00:48)
- Если при сброшенном флаге вам ничего другого делать не надо, то оставьте так, как есть. Часть else не является обязательной. - Ксения(07.09.2013 18:01)
- По последнему примеру я пробовал до этого так делать. Только компилер ничего в этом случае не компилит. То есть, этого куска кода просто нет. - Mazur(07.09.2013 18:01)
- :)) Bill(107 знак., 07.09.2013 17:58)
- Какие есть варианты в Си из числа unsigned int16 получить в две переменных unsigned char отдельно старший и отдельно младший байт, кроме структуры и union? AU08(151 знак., 08.09.2013 02:11, dao, полностью)
- А теперь хотел бы понять особенности приведенных вами примеров. Напоминаю, си только начал изучать. И поэтому хотел бы понять нюансы. Я пока на стадии "лампочками поморгать". Бегущие огоньки по кругу заработали на следуюшем коде: Mazur(702 знак., 06.09.2013 08:49 - 08:53, dao, полностью)MBedder
- Так сказать, дебют. Покритикуйте. Понимаю, что элементарщина, но ... :) Mazur(390 знак., 05.09.2013 19:37, dao, полностью)MBedder
- Душа опять просит извращений... можно ли как-то быстро конвертнуть PCI на старой пром. мамке в AGP для старой восьмиметровой Vanta LT? - Николай Коровин(06.09.2013 00:39, dao, полностью)
- самый маленький массовый линукс с вайфаем. Я был уверен, что там 5 чипов внутри - нор, нанд, сдрам, цпу и радио. Оказалось всего 4 - ig_z(04.09.2013 00:34, dao, ссылка, полностью)