<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_34750"  />
<title>rulinux.net - Форум - Development - [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#110145</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#110145</guid>
<pubDate>Tue, 11 Oct 2011 23:23:42 +0400</pubDate>
<description><![CDATA[<p>лисп при желании сишный код нагенерит без проблем, потом его хоть на авр хоть куда.</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#110141</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#110141</guid>
<pubDate>Tue, 11 Oct 2011 23:10:27 +0400</pubDate>
<description><![CDATA[<p>В качестве пре-пре-процессора.. 

<br><br>

Теперь я понимаю почему под PC все пишут такие тормозные программы: за отсутствием языковых средств в сях и ленью возиться с ещё одной прослойкой - всё вычисляют в рантайме, что приводит к тому, что современные гигагерцовые процессоры тормозят так же как и ХТ-шки в древности.</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#110138</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#110138</guid>
<pubDate>Tue, 11 Oct 2011 22:59:21 +0400</pubDate>
<description><![CDATA[<p><i>>юз лисп сцуко</i><br> На AVR-е?</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#110137</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#110137</guid>
<pubDate>Tue, 11 Oct 2011 22:57:34 +0400</pubDate>
<description><![CDATA[<p><i>> макросов</i><br> юз лисп сцуко</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#110119</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#110119</guid>
<pubDate>Tue, 11 Oct 2011 22:02:06 +0400</pubDate>
<description><![CDATA[<p>Бля, макросов получилось больше чем кода.. Это заёбывает.. </p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#108417</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#108417</guid>
<pubDate>Wed, 28 Sep 2011 01:26:22 +0400</pubDate>
<description><![CDATA[<p>Жаль.. Думал есть какой выкрутас. </p><p>В рантайм это исполняться не должно, свичи не катят ещё и потому, что заранее имена констант знать не хочется (так и на ифдефах можно было бы наколбасить без траты байтов и тактов), а хранить строки просто негде. Лепить пре-пре-процессор, который будет сложнее собственно программки тоже, наверное, не хочется.</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#108416</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#108416</guid>
<pubDate>Wed, 28 Sep 2011 00:36:07 +0400</pubDate>
<description><![CDATA[<p>в сях внутри макроса другие макросы определять нельзя. Препроцессор, который разворачивает самый внешний макрос, не будет обрабатывать сгенерённый им код. Поэтому в сях такие задачи традиционно решаются без макросов, блоком switch() и константой, поставляемой в функцию как аргумент. У меня аналогичная но более сложная задача решалась отдельной функцией на лиспе, который создавал сишный исходник в момент компиляции.</p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#108415</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#108415</guid>
<pubDate>Tue, 27 Sep 2011 21:53:29 +0400</pubDate>
<description><![CDATA[<p>Вот удалось на тестовом сайте запостить с более-менее форматированием: &nbsp;<a href="http://rulinux.dyndns.org/thread_4_page_1#msg12">http://rulinux.dyndns.org/thread_4_page_1#msg12</a></p>]]></description>
</item>
<item>
<title>Re: [AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#108414</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#108414</guid>
<pubDate>Tue, 27 Sep 2011 21:41:08 +0400</pubDate>
<description><![CDATA[<p>Функции которые со всем этим работают выглядят так:    \code{</p><p>#define output_init(name) C_##name##_DDR |= (1</p>]]></description>
</item>
<item>
<title>[AVR-GCC] Как изнутри сишного макроса определить пару-тройку макросов?</title>
<link>https://rulinux.net/message.php?newsid=34750&amp;page=1#108413</link>
<guid>https://rulinux.net/message.php?newsid=34750&amp;page=1#108413</guid>
<pubDate>Tue, 27 Sep 2011 21:38:00 +0400</pubDate>
<description><![CDATA[<p>Есть дофига устройств которые висят каждое на своей ножке MCU, их конфигурация описывается в хидере примерно так:  <fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define LASER1_PORT D<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define LASER1_PIN  6<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define SENSOR1_PORT C<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define SENSOR1_PIN  4<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset></p><p>Потом на каждое устройство определяются специфичные для него порты: </p><p><fieldset style="border: 1px dashed black; padding:0px;"><ol style="background-color:#3d3d3d;" start="1"><li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_LASER1_PORT C_CONCAT(PORT,LASER1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_LASER1_DDR  C_CONCAT(DDR,LASER1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_LASER1_PIN  C_CONCAT(PIN,LASER1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_LASER1_P    C_CONCAT3(P,LASER1_PORT,LASER1_PIN)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_SENSOR1_PORT  C_CONCAT(PORT,SENSOR1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_SENSOR1_DDR   C_CONCAT(DDR,SENSOR1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_SENSOR1_PIN   C_CONCAT(PIN,SENSOR1_PORT)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;#define C_SENSOR1_P     C_CONCAT3(P,SENSOR1_PORT,SENSOR1_PIN)<li style="background-color:#000000; padding-left: 5px; color: gray">&nbsp;</ol></fieldset></p><p>Функции которые со всем этим работают выглядят так:    \code{ #define output_init(name) C_##name##_DDR |= (1</p>]]></description>
</item>
</channel>
</rss>