<?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>topic Re: Changing GPIO pin direction in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250771#M7230</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Derek,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the description of lwgpio_set_direction() says that "..., it is possible to set the direction of a pin that is currently not in the GPIO mode." I think Your problem has to do something with that. As a second suggestion, I would say that You have to reinitialize with lwgpio_init() if You want to change the pin directions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day,&lt;/P&gt;&lt;P&gt;Kamil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Aug 2013 06:04:03 GMT</pubDate>
    <dc:creator>kamilwistuba</dc:creator>
    <dc:date>2013-08-13T06:04:03Z</dc:date>
    <item>
      <title>Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250768#M7227</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am working on using data pins to transmit data back and forth on a bus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However I am having problems with changing the direction of the data pins from input to output and back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried using lwgpio_set_direction() but it doesn't seem to be working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Derek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Aug 2013 14:45:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250768#M7227</guid>
      <dc:creator>derekdrost</dc:creator>
      <dc:date>2013-08-12T14:45:51Z</dc:date>
    </item>
    <item>
      <title>Re: Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250769#M7228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;have you init the lwgpio correctly?&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;lwgpio_init()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;LWGPIO_STRUCT led1;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;lwgpio_init(&amp;amp;led1, BSP_LED1, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_NOCHANGE);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;lwgpio_set_functionality(&amp;amp;led1, BSP_LED1_MUX_GPIO);&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Aug 2013 16:00:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250769#M7228</guid>
      <dc:creator>litao</dc:creator>
      <dc:date>2013-08-12T16:00:35Z</dc:date>
    </item>
    <item>
      <title>Re: Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250770#M7229</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's the relevant code. No this isn't how it looks, just putting the relevant information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Define the data pins&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D0&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_D | GPIO_PIN6)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D1&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_D | GPIO_PIN5)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D2&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_D | GPIO_PIN4)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D3&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_D | GPIO_PIN3)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D4&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_D | GPIO_PIN2)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D5&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_C | GPIO_PIN17)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D6&lt;/TD&gt;&lt;TD&gt;(GPIO_PORT_C | GPIO_PIN13)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define PIN_D7&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(GPIO_PORT_C | GPIO_PIN9)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MUX_GPIO&amp;nbsp;&amp;nbsp;&amp;nbsp; (1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;#define LOW&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;LWGPIO_VALUE_LOW&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;#define HIGH&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;LWGPIO_VALUE_HIGH&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Setup the pin structure&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT* dataPins[8];&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D0;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D1;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D2;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D3;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D4;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D5;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D6;&lt;/P&gt;&lt;P&gt;LWGPIO_STRUCT D7;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Initialize the data pins as output for writing to the bus, all low&lt;/P&gt;&lt;P&gt;if (!lwgpio_init(&amp;amp;D0, PIN_D0, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D1, PIN_D1, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D2, PIN_D2, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D3, PIN_D3, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D4, PIN_D4, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D5, PIN_D5, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D6, PIN_D6, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!lwgpio_init(&amp;amp;D7, PIN_D7, LWGPIO_DIR_OUTPUT, LOW))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set gpio functionality&lt;/P&gt;&lt;P&gt;lwgpio_set_functionality(&amp;amp;D0, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D1, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D2, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D3, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D4, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D5, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D6, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_functionality(&amp;amp;D7, MUX_GPIO);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put pins in an array for easy usage&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;dataPins [0] = &amp;amp;D0;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [1] = &amp;amp;D1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [2] = &amp;amp;D2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [3] = &amp;amp;D3;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [4] = &amp;amp;D4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [5] = &amp;amp;D5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [6] = &amp;amp;D6;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataPins [7] = &amp;amp;D7;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Then, if I want to read from the bus I change the direction with the following code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if (dataMode != READ) // make sure data pins are in input mode&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataMode = READ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 8; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_set_direction(dataPins[i],LWGPIO_DIR_INPUT);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hopefully this makes the situation a little clearer?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Aug 2013 16:29:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250770#M7229</guid>
      <dc:creator>derekdrost</dc:creator>
      <dc:date>2013-08-12T16:29:50Z</dc:date>
    </item>
    <item>
      <title>Re: Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250771#M7230</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Derek,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the description of lwgpio_set_direction() says that "..., it is possible to set the direction of a pin that is currently not in the GPIO mode." I think Your problem has to do something with that. As a second suggestion, I would say that You have to reinitialize with lwgpio_init() if You want to change the pin directions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day,&lt;/P&gt;&lt;P&gt;Kamil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Aug 2013 06:04:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250771#M7230</guid>
      <dc:creator>kamilwistuba</dc:creator>
      <dc:date>2013-08-13T06:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250772#M7231</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for the reply Kamil,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I'm not so sure about initializing the pin again as the first parameter in lwgpio_set_direction() is: handle [in] - Pointer to the LWGPIO_STRUCT pre-initialized by lwgpio_init() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In respect to the pin being in gpio mode, I'll try taking it out of gpio mode, changing the direction, and setting the pin back in gpio mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I'll let you know how it goes.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Aug 2013 13:08:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250772#M7231</guid>
      <dc:creator>derekdrost</dc:creator>
      <dc:date>2013-08-13T13:08:30Z</dc:date>
    </item>
    <item>
      <title>Re: Changing GPIO pin direction</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250773#M7232</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did it work for you? I would be glad if you could elaborate as for the method you've eventually used, in order to achieve the desired GPIO direction change....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2014 07:08:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Changing-GPIO-pin-direction/m-p/250773#M7232</guid>
      <dc:creator>panpwr</dc:creator>
      <dc:date>2014-06-16T07:08:59Z</dc:date>
    </item>
  </channel>
</rss>

