<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>AVR4027: Трюки и советы по оптимизации Си кода для 8-и разрядных AVR микроконтроллеров. Ч.1</title>
		<description>Discuss AVR4027: Трюки и советы по оптимизации Си кода для 8-и разрядных AVR микроконтроллеров. Ч.1</description>
		<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html</link>
		<lastBuildDate>Tue, 07 Apr 2026 03:12:09 +0000</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://chipenable.ru/index.php/component/jcomments/feed/com_k2/179.html" rel="self" type="application/rss+xml" />
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3279</link>
			<description><![CDATA[Если используется инкремент, то в каждом цикле выполняется команда сравнения, а затем команда перехода. Например:
LOOP: 
...
inc r16
cpi r16, 10
brcs LOOP При декременте выполняется только команда перехода. Например:
LOOP: 
...
dec r16
brne LOOP Вне цикла операции инкремента и декремента выполняются за одинаковое время. Это ассемблерные инструкции inc и dec.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Thu, 19 Sep 2013 18:57:59 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3279</guid>
		</item>
		<item>
			<title>FreshMan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3278</link>
			<description><![CDATA[а почему ТОЛЬКО в цикле “do{}while()” инкремент и декремент индексной переменной цикла будет давать код разного размер ? в не цикла инкремент и декремент выполняются выходит за одинаковое время ?]]></description>
			<dc:creator>FreshMan</dc:creator>
			<pubDate>Thu, 19 Sep 2013 15:29:39 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3278</guid>
		</item>
		<item>
			<title>Bonio says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3277</link>
			<description><![CDATA[Тьфу, pgm_read_byte конечно же.]]></description>
			<dc:creator>Bonio</dc:creator>
			<pubDate>Thu, 19 Sep 2013 12:12:58 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3277</guid>
		</item>
		<item>
			<title>Bonio says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3276</link>
			<description><![CDATA[Нет, переменная const так же храниться в оперативке. Просто компилятор следит за тем, чтобы в программе нигде не менялось её значение. Для хранения значения во флеш используйте атрибут PROGMEM, для чтения такого значения используйте процедуру eeprom_read_byt e.]]></description>
			<dc:creator>Bonio</dc:creator>
			<pubDate>Thu, 19 Sep 2013 12:11:36 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3276</guid>
		</item>
		<item>
			<title>_Артём_ says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3275</link>
			<description><![CDATA[Разница в том что при использовании flash переменной её копия в ОЗУ не создаётся, а значение считывается только тогда когда нужно.]]></description>
			<dc:creator>_Артём_</dc:creator>
			<pubDate>Thu, 19 Sep 2013 12:04:46 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3275</guid>
		</item>
		<item>
			<title>FreshMan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3274</link>
			<description><![CDATA[но ведь "переменная" с префиксом const тоже хранится во флеше и тоже грузится в ОЗП в чем же разница...., не пойму.....]]></description>
			<dc:creator>FreshMan</dc:creator>
			<pubDate>Thu, 19 Sep 2013 11:49:52 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3274</guid>
		</item>
		<item>
			<title>Bonio says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3273</link>
			<description><![CDATA[Для хранения значений во флеш используется атрибут PROGMEM, а const лишь указывает компилятору, что переменная не может изменить свое значения. const никак не влияет на потребляемые ресурсы, всё отличие от обычной переменной в том, что запись такого вида вызовет ошибку компиляции. const char x=1; x = 2;]]></description>
			<dc:creator>Bonio</dc:creator>
			<pubDate>Thu, 19 Sep 2013 10:20:02 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3273</guid>
		</item>
		<item>
			<title>САБ says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3272</link>
			<description><![CDATA[Если вы о константах в программной памяти, то экономия вот в чем - константная переменая в ОЗУ должна откуда-то получить свое значение. И это начальное значение хранится во флеше, а перед запуском main() копируется в ОЗУ. То есть получается как бы две копии этой переменной - одна (недоступная, скрытая) во флеше и вторая - в ОЗУ. Так почему бы не использовать сразу ту, котрая во флеше? А при активном использовании текстовых строк ОЗУ заканчивается очччень быстро и и в этом случае использование строк прямо из флеша - единственный выход.]]></description>
			<dc:creator>САБ</dc:creator>
			<pubDate>Thu, 19 Sep 2013 09:59:08 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3272</guid>
		</item>
		<item>
			<title>FreshMan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3271</link>
			<description><![CDATA[вопрос по поводу констант допустим есть constant char x; char y; насколько я понимаю то для обоих выделитсяминима льная ячейка памяти в 8 бит где же тогда сдесь будет оптимизация ?]]></description>
			<dc:creator>FreshMan</dc:creator>
			<pubDate>Thu, 19 Sep 2013 08:31:56 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3271</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3267</link>
			<description><![CDATA[Да, совет более чем сомнительный. Я бы его не стал использовать.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Wed, 18 Sep 2013 11:48:53 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3267</guid>
		</item>
		<item>
			<title>САБ says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3262</link>
			<description><![CDATA[Совет №7 очень и очень спорный, особенно из-за слова "всегда". А уж пример вообще ни о чем - 1) выигрыш получился за счет встраивания, а не замены на асм. Такой же эффект можно было получить, объявив функцию static, ну в крайнем случае static inline. 2) сама ассемблерная вставка написана с ошибкой - используемый регистр r24 не указан в списке параметров вставки, значит эта вставка испортит предыдущее содержимое этого регистра и в чуть более сложном коде это приведет к неправильному поведению программы 3) выбор регистра надо было доверить компилятору через использование параметров асм-вставки. В общем от этого совета больше вреда, чем пользы.]]></description>
			<dc:creator>САБ</dc:creator>
			<pubDate>Wed, 18 Sep 2013 09:30:58 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3262</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3254</link>
			<description><![CDATA[Ученые (в моем лице) постоянно бьются над улучшением качества переводов.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 16 Sep 2013 19:16:24 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3254</guid>
		</item>
		<item>
			<title>megannnn98 says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3245</link>
			<description><![CDATA[Спасибо, только немного трудно читать - чувствуется что перевод. :zzz]]></description>
			<dc:creator>megannnn98</dc:creator>
			<pubDate>Mon, 16 Sep 2013 04:51:45 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3245</guid>
		</item>
		<item>
			<title>Bonio says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3236</link>
			<description><![CDATA[Спасибо, очень полезная информация.]]></description>
			<dc:creator>Bonio</dc:creator>
			<pubDate>Sat, 14 Sep 2013 20:24:44 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/179-avr4027-tips-and-tricks-to-optimize-your-c-code.html#comment-3236</guid>
		</item>
	</channel>
</rss>
