<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Оптимизация кода - STM32				            </title>
            <link>https://microtechnics.ru/community/stm32/optimizacziya-koda/</link>
            <description>Обсуждение вопросов, посвященных программированию микроконтроллеров, разработке электроники и не только.</description>
            <language>ru-RU</language>
            <lastBuildDate>Sat, 06 Jun 2026 11:16:55 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>НА: Оптимизация кода</title>
                        <link>https://microtechnics.ru/community/stm32/optimizacziya-koda/#post-779</link>
                        <pubDate>Fri, 21 Jan 2022 08:02:00 +0000</pubDate>
                        <description><![CDATA[Как вариант:
int main(void)
{
    gpio();                                                                             //Передача данных портов GPIO
    while(1)                          ...]]></description>
                        <content:encoded><![CDATA[<p>Как вариант:</p>
<pre contenteditable="false">int main(void)
{
    gpio();                                                                             //Передача данных портов GPIO
    while(1)                                                                            //Бесконечный цикл
    {
        if (((GPIOB-&gt;IDR &amp; (1 &lt;&lt; 13)) == 1) &amp;&amp; ((GPIOB-&gt;IDR &amp; (1 &lt;&lt; 12)) == 0)) //Если SW3=1 и SW4=0, то:
        {
            GPIOB-&gt;BSRR = GPIO_BSRR_BR_5 | GPIO_BSRR_BR_7;                              // L5=0 L7=0
        }    
		
        if (((GPIOB-&gt;IDR &amp; (1 &lt;&lt; 13)) == 0) &amp;&amp; ((GPIOB-&gt;IDR &amp; (1 &lt;&lt; 12)) == 1)) //Если SW3=0 и SW4=1, то:
        {
            GPIOB-&gt;BSRR = GPIO_BSRR_BS_5 | GPIO_BSRR_BR_7;                              // L5=1 L7=0
        }   
		
        if ((GPIOB-&gt;IDR &amp; (1 &lt;&lt; 13)) == (GPIOB-&gt;IDR &amp; (1 &lt;&lt; 12))) //Если SW3=SW4, то: 
        {
            GPIOB-&gt;BSRR = GPIO_BSRR_BR_5 | GPIO_BSRR_BS_7;                              // L5=0 L7=1
        }
    }
}</pre>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>Aveal</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/optimizacziya-koda/#post-779</guid>
                    </item>
				                    <item>
                        <title>Оптимизация кода</title>
                        <link>https://microtechnics.ru/community/stm32/optimizacziya-koda/#post-778</link>
                        <pubDate>Thu, 20 Jan 2022 19:52:51 +0000</pubDate>
                        <description><![CDATA[Сама суть программы, чтобы при включение переключателей загорался определённый светодиод. Не могу понять, как можно оптимизировать, помогите пожалуйстаЭто только часть кода, если надо, то мо...]]></description>
                        <content:encoded><![CDATA[<p><span>Сама суть программы, чтобы при включение переключателей загорался определённый светодиод. Не могу понять, как можно оптимизировать, помогите пожалуйста</span><br /><br /><span>Это только часть кода, если надо, то могу предоставить полный. Но оптимизировать надо только эту часть</span></p>
<p> </p>
<p><code></code></p>
<pre class="de1" contenteditable="false"><span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
    gpio<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>                                                         <span class="co1">//Передача данных портов GPIO</span>
    <span class="kw1">while</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span>                                                            <span class="co1">//Бесконечный цикл</span>
    <span class="br0">{</span>
        <span class="kw1">if</span> <span class="br0">(</span><span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">13</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">1</span> <span class="br0">)</span> <span class="sy0">&amp;&amp;</span> <span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">12</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">0</span> <span class="br0">)</span><span class="br0">)</span>    <span class="co1">//Если SW3=1 и SW4=0, то:</span>
        <span class="br0">{</span>                                                                                                                                                                                                     
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BR_5<span class="sy0">;</span>                               <span class="co1">//L5=0                                      </span>
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BR_7<span class="sy0">;</span>                               <span class="co1">//L7=0</span>
        <span class="br0">}</span>                                                                                                                                                   
        <span class="kw1">if</span> <span class="br0">(</span><span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">13</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">0</span> <span class="br0">)</span> <span class="sy0">&amp;&amp;</span> <span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">12</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">1</span> <span class="br0">)</span><span class="br0">)</span>   <span class="co1">//Если SW3=0 и SW4=1, то:</span>
        <span class="br0">{</span>                                                                                                                                                   
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BS_5<span class="sy0">;</span>                                          <span class="co1">//L5=1</span>
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BR_7<span class="sy0">;</span>                                      <span class="co1">//L7=0</span>
        <span class="br0">}</span>                                                                                                                                                   
        <span class="kw1">if</span> <span class="br0">(</span><span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">13</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">1</span> <span class="br0">)</span> <span class="sy0">&amp;&amp;</span> <span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">12</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">1</span> <span class="br0">)</span><span class="br0">)</span>   <span class="co1">//Если SW3=SW4, то: </span>
        <span class="br0">{</span>                                                                                                                                                   
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BR_5<span class="sy0">;</span>                                     <span class="co1">//L5=0</span>
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BS_7<span class="sy0">;</span>                                     <span class="co1">//L7=1</span>
        <span class="br0">}</span>                                                                                                                                                   
        <span class="kw1">if</span> <span class="br0">(</span><span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">13</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">0</span> <span class="br0">)</span> <span class="sy0">&amp;&amp;</span> <span class="br0">(</span><span class="br0">(</span>GPIOB<span class="sy0">-&gt;</span>IDR <span class="sy0">&amp;</span> <span class="br0">(</span><span class="nu0">1</span> <span class="sy0">&lt;&lt;</span> <span class="nu0">12</span><span class="br0">)</span><span class="br0">)</span> <span class="sy0">==</span> <span class="nu0">0</span> <span class="br0">)</span><span class="br0">)</span>   <span class="co1">//Если SW3=SW4, то: </span>
        <span class="br0">{</span>                                                                                                                                                   
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BR_5<span class="sy0">;</span>                                     <span class="co1">//L5=0</span>
            GPIOB<span class="sy0">-&gt;</span>BSRR <span class="sy0">=</span> GPIO_BSRR_BS_7<span class="sy0">;</span>                                     <span class="co1">//L7=1    </span>
        <span class="br0">}</span>
    <span class="br0">}</span>
<span class="br0">}</span></pre>
<p><code></code></p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/stm32/">STM32</category>                        <dc:creator>rocky</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/stm32/optimizacziya-koda/#post-778</guid>
                    </item>
							        </channel>
        </rss>
		