-
- if(!proc_timer(ST_LED)){ - Скрипач(07.09.2013 21:23)
- Угу. - Mazur(07.09.2013 21:24)
- На счет регистра с возвращаемым значением. Тут не компилятор это дело решает в каждом отдельном случае, а регистр для этой цели застолблен в данном компиляторе навечно. Т.е. вы можете запомнить, через какой регистр(ы) передавливается u8 (u16), а Ксения(268 знак., 07.09.2013 18:16)
- Я и не собирался совсем бросать ассемблер. С си видите как получилось. На асме бери и пиши. Так как логику знаю, радиоэлектронику постольку-постольку тоже. И особых проблем что-то делать у меня не было. Скажем "дребезг контактов" в ступор меня не Mazur(730 знак., 07.09.2013 20:53)
- Есть и такие вещи, которые на Си пишутся даже не через ухо, а через вообще нечто другое. - Bill(07.09.2013 18:21)
- Сброшенный флаг обычно проверяют так: 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)
- Эффективное (экономически) программирование == индусский код. - fk0(08.09.2013 21:03)
- Ну, так, опять же, тут палка о двух концах. Что значит "убил несколько дней"? Еще раз повторю: я не занимаюсь оптимизацией специально. Я просто использую приемы, позволяющие создавать достаточно эффективные программы. И эти приемы ни от языка, ни Bill(627 знак., 08.09.2013 18:36)
- 1 - Тут всего лишь тот момент, что за меня сказали то, чего вы бы от меня не приняли. Типа "ты сначала хоть как-то научись программировать, потом уже можешь говорить об эффективном программировании". Mazur(201 знак., 08.09.2013 18:37)
- Рано радуетесь. Эффективность каждый понимает по-своему. SciFi(252 знак., 08.09.2013 18:17)
- Во! В точку. Эффективное программирование. Спасибо, что за меня сказали. - Mazur(08.09.2013 18:13)
- С этим можно соглашаться, а можно и не согласиться. Тут все зависит от того, что именно Bill(387 знак., 08.09.2013 17:55)
- А если в процентах? По Кнуту должно выйти 3% :-) - SciFi(08.09.2013 17:35, ссылка)
- Было три проекта, в которых мне пришлось заняться оптимизацией вручную. В одном - не хватало памяти, в двух других - скорости. - Bill(08.09.2013 15:56 - 16:28)
- Вопрос: сколько было проектов, которые без этой оптимизации не работали? - SciFi(08.09.2013 15:43)
- Оптимизация, естественно. Bill(122 знак., 08.09.2013 15:02 - 15:15)
- "все получается автоматически". А что именно получается? - SciFi(08.09.2013 01:15)
- Ну, во-первых, я со своим компилятором давно дружу, и он меня не подводит. А во-вторых, как следствие Bill(331 знак., 08.09.2013 01:13)
- Ну и зря не надеетесь на компилятор. Компилятор - друг программиста. Без друзей тяжко. SciFi(181 знак., 08.09.2013 01:01 - 01:03)
- В компиляторах проф. уровня такого нет. - fk0(08.09.2013 00:48)
- Вообще-то, у меня IAR AVR V5.51. А у вас какой? Да и потом, Bill(145 знак., 08.09.2013 00:56)
- Ваши сведения устарели. Включите режим "multifile compilation", "link time optimization" или как оно там называется в вашем компиляторе. А если нет такого режима, то сочувствую. - SciFi(08.09.2013 00:47)
- В том-то и дело, что нет. Вызов функции - не есть константа. - Bill(08.09.2013 00:34)
- Это "вычисление констант на этапе компиляции". Инверсию перенесет в константу. Или нет? - Скрипач(07.09.2013 22:24)
- Нет! В данном случае не справится. ;) - Bill(07.09.2013 22:21)
- Оставьте оптимизацию компилятору. В данном, конкретном, случае он справится. - Скрипач(07.09.2013 19:59)
- Ну, так, опять же, если иметь в виду "мелочную" оптимизацию, то данный вариант не является Bill(161 знак., 07.09.2013 18:12)
- Если при сброшенном флаге вам ничего другого делать не надо, то оставьте так, как есть. Часть else не является обязательной. - Ксения(07.09.2013 18:01)
- Да бывают случаи, что нужно что-то делать, если время не вышло. - Mazur(07.09.2013 18:03)
- Тогда добавьте к if часть else, и выразите в ней то дело, которое требуется делать при отсутствующем флаге. - Ксения(07.09.2013 18:07)
- Да бывают случаи, что нужно что-то делать, если время не вышло. - Mazur(07.09.2013 18:03)
- По последнему примеру я пробовал до этого так делать. Только компилер ничего в этом случае не компилит. То есть, этого куска кода просто нет. - Mazur(07.09.2013 18:01)
- :)) Bill(107 знак., 07.09.2013 17:58)
- Первый вариант не годится, т.к. по замыслу Мазура проверяются отдельные биты. А знак "!" уничтожит разницу в битах. - Ксения(07.09.2013 18:20)
- Именно биты я и имел в виду. Это мой стандартный прием. А вообще, я когда-то Bill(97 знак., 07.09.2013 18:25)
- Первый вариант не годится, т.к. по замыслу Мазура проверяются отдельные биты. А знак "!" уничтожит разницу в битах. - Ксения(07.09.2013 18:20)
- if(!proc_timer(ST_LED)){ - Скрипач(07.09.2013 21:23)