<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックLPC 1227 and GPIO</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-1227-and-GPIO/m-p/526249#M8882</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by drvrh on Tue Jul 21 03:42:23 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wrote my library for GPIO for LPC1227 and working in past but now doesn't work. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have in main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;GPIOSetDir(0, 16, OUTPUT);
GPIOSetValue(0, 16, LOW);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In IO.c I have: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;void GPIOSetValue( uint32_t portNum, uint32_t bitPosi, uint32_t bitVal )
{
&amp;nbsp; if (bitVal == 0)
&amp;nbsp; {
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
break;
case 1:
LPC_GPIO1 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
break;
case 2:
LPC_GPIO2 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
default:
break;
}
&amp;nbsp; }
&amp;nbsp; else if (bitVal &amp;gt;= 1)
&amp;nbsp; {
&amp;nbsp; switch (portNum){
&amp;nbsp; case 0:
&amp;nbsp; LPC_GPIO0 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; case 1:
&amp;nbsp; LPC_GPIO1 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; case 2:
&amp;nbsp; LPC_GPIO2 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; }
&amp;nbsp; }
}

void GPIOSetDir( uint32_t portNum, uint32_t bitPosi, uint32_t dir )
{
&amp;nbsp; if(dir)
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0-&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
case 1:
LPC_GPIO1-&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
case 2:
LPC_GPIO2 -&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
default:
break;
}
&amp;nbsp; else
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
case 1:
LPC_GPIO1 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
case 2:
LPC_GPIO2 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
default:
break;
}
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where I have a problem? &lt;/SPAN&gt;&lt;BR /&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338038" rel="nofollow noopener noreferrer" target="_blank"&gt;IO_0.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338038" rel="nofollow noopener noreferrer" target="_blank"&gt;IO_0.h.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:01:42 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:01:42Z</dc:date>
    <item>
      <title>LPC 1227 and GPIO</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-1227-and-GPIO/m-p/526249#M8882</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by drvrh on Tue Jul 21 03:42:23 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wrote my library for GPIO for LPC1227 and working in past but now doesn't work. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have in main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;GPIOSetDir(0, 16, OUTPUT);
GPIOSetValue(0, 16, LOW);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In IO.c I have: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;void GPIOSetValue( uint32_t portNum, uint32_t bitPosi, uint32_t bitVal )
{
&amp;nbsp; if (bitVal == 0)
&amp;nbsp; {
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
break;
case 1:
LPC_GPIO1 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
break;
case 2:
LPC_GPIO2 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi);
default:
break;
}
&amp;nbsp; }
&amp;nbsp; else if (bitVal &amp;gt;= 1)
&amp;nbsp; {
&amp;nbsp; switch (portNum){
&amp;nbsp; case 0:
&amp;nbsp; LPC_GPIO0 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; case 1:
&amp;nbsp; LPC_GPIO1 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; case 2:
&amp;nbsp; LPC_GPIO2 -&amp;gt; SET = (1 &amp;lt;&amp;lt; bitPosi);
&amp;nbsp; break;
&amp;nbsp; }
&amp;nbsp; }
}

void GPIOSetDir( uint32_t portNum, uint32_t bitPosi, uint32_t dir )
{
&amp;nbsp; if(dir)
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0-&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
case 1:
LPC_GPIO1-&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
case 2:
LPC_GPIO2 -&amp;gt; DIR |= 1 &amp;lt;&amp;lt; bitPosi;
break;
default:
break;
}
&amp;nbsp; else
&amp;nbsp; switch (portNum) {
case 0:
LPC_GPIO0 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
case 1:
LPC_GPIO1 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
case 2:
LPC_GPIO2 -&amp;gt; DIR &amp;amp;= ~(1 &amp;lt;&amp;lt; bitPosi);
break;
default:
break;
}
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where I have a problem? &lt;/SPAN&gt;&lt;BR /&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338038" rel="nofollow noopener noreferrer" target="_blank"&gt;IO_0.c.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338038" rel="nofollow noopener noreferrer" target="_blank"&gt;IO_0.h.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:01:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-1227-and-GPIO/m-p/526249#M8882</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:01:42Z</dc:date>
    </item>
    <item>
      <title>Re: LPC 1227 and GPIO</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-1227-and-GPIO/m-p/526250#M8883</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by fjrg76 on Tue Jul 28 22:32:39 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You are using: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_GPIO0 -&amp;gt; CLR = (1 &amp;lt;&amp;lt; bitPosi); // (1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but you forgot the OR '|' operator:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_GPIO0 -&amp;gt; CLR |= (1 &amp;lt;&amp;lt; bitPosi); // (2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_GPIO0 -&amp;gt; SET |= (1 &amp;lt;&amp;lt; bitPosi); // (2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you see the difference? In (1)&amp;nbsp; you're setting the whole register to the (1&amp;lt;&amp;lt;bitPosi) value, but that's not what you want. In (2) you're clearing (or setting) ONLY the bit specified in bitPosi.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you're not used to the compact sintax of C:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_GPIO0 -&amp;gt; CLR |= (1 &amp;lt;&amp;lt; bitPosi);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;is the same as:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_GPIO0 -&amp;gt; CLR = LPC_GPIO0 -&amp;gt; CLR | (1 &amp;lt;&amp;lt; bitPosi);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(Same thing as&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;x+=5;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;x = x + 5;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:01:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-1227-and-GPIO/m-p/526250#M8883</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:01:43Z</dc:date>
    </item>
  </channel>
</rss>

