<?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: Basic question about GPIO usage in Kinetis devices in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342310#M16571</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That worked! I just thought there would be a more direct way for doing this (like in the S08).&lt;/P&gt;&lt;P&gt;Thanks!!!!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Mar 2015 14:55:18 GMT</pubDate>
    <dc:creator>juanm</dc:creator>
    <dc:date>2015-03-24T14:55:18Z</dc:date>
    <item>
      <title>Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342306#M16567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi! I have a very basic question about the use of the GPIO ports in Kinetis devices (I'm using FRDM-KL25Z and CW v10.6).&lt;/P&gt;&lt;P&gt;I have been using a library for an LCD 16x2 display with the HCS08 family, but now I wanted to port it to the KL25Z.&lt;/P&gt;&lt;P&gt;My question is with the following function:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="_jivemacro_uid_14271397326065206 jive_text_macro jive_macro_code" jivemacro_uid="_14271397326065206"&gt;
&lt;P&gt;void LCD_send_byte(char address, char data)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; unsigned int temp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-size: 13.3333330154419px;"&gt;PTBD_PTBD0&lt;/SPAN&gt; = address;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // config the R/S line&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LCD_ENABLE = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set LCD enable line to 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LCD_send_nibble(data &amp;gt;&amp;gt; 4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // send the higher nibble&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LCD_send_nibble(data &amp;amp; 0x0f);&amp;nbsp;&amp;nbsp; // send the lower nibble&lt;/P&gt;
&lt;P&gt;&amp;nbsp; for (temp=1000; temp; temp--);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With this line: &lt;SPAN style="font-size: 13.3333330154419px;"&gt;PTBD_PTBD0&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt; = address; &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;I assign the value of "address" to PTB0, but the question is, how can I implement that line in Kinetis? I tried the following:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;GPIOB_PDOR = (address&amp;lt;&amp;lt;0); but that didn't work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;That's it, and sorry if this is a simple question.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; line-height: 1.5em;"&gt;Thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 19:40:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342306#M16567</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-23T19:40:27Z</dc:date>
    </item>
    <item>
      <title>Re: Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342307#M16568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;GPIOB_PDOR = ((GPIOB_PDOR &amp;amp; ~(&lt;SPAN style="font-size: 13.3333px;"&gt;address&lt;/SPAN&gt;)) | (&lt;SPAN style="font-size: 13.3333px;"&gt;address&lt;/SPAN&gt;)); // assuming address is a single bit controlling the RS line&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However also check out: &lt;A href="http://www.utasker.com/kinetis/FRDM-KL25Z.html#LCD" title="http://www.utasker.com/kinetis/FRDM-KL25Z.html#LCD"&gt;http://www.utasker.com/kinetis/FRDM-KL25Z.html#LCD&lt;/A&gt;&lt;/P&gt;&lt;P&gt;This includes a 4/8 bit interface for the FRDM-KL25Z to character displays (1 x 8 to 4 x 40) and simulates the KL25, FRDM-KL25Z and the LCD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kinetis: &lt;A href="http://www.utasker.com/kinetis.html" title="http://www.utasker.com/kinetis.html"&gt;µTasker Kinetis support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;KL25: &lt;A href="http://www.utasker.com/kinetis/FRDM-KL25Z.html" title="http://www.utasker.com/kinetis/FRDM-KL25Z.html"&gt;µTasker Kinetis FRDM-KL25Z support&lt;/A&gt; / &lt;A href="http://www.utasker.com/kinetis/TWR-KL25Z48M.html" title="http://www.utasker.com/kinetis/TWR-KL25Z48M.html"&gt;µTasker Kinetis TWR-KL25Z48M support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;LCD: &lt;A href="http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF" title="http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF"&gt;http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 21:32:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342307#M16568</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-03-23T21:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342308#M16569</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks! And if I want to do the same but with a different pin? (PTB20)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 21:59:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342308#M16569</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-23T21:59:20Z</dc:date>
    </item>
    <item>
      <title>Re: Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342309#M16570</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As long as address is equal to the bit (0x00100000 for PTB20) it will be OK for any single port bit control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Otherwise, if &lt;STRONG&gt;address&lt;/STRONG&gt; is just &lt;STRONG&gt;TRUE&lt;/STRONG&gt; or &lt;STRONG&gt;FALSE&lt;/STRONG&gt; you can do&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define RS_LINE 0x00100000&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;if (address == TRUE) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_PSOR = RS_LINE; // set to '1'&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;else {&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_PCOR = RS_LINE; // clear to '0'&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The port macros that I use are here: &lt;A href="http://www.utasker.com/forum/index.php?topic=1875.0" title="http://www.utasker.com/forum/index.php?topic=1875.0"&gt;http://www.utasker.com/forum/index.php?topic=1875.0&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kinetis: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis.html" target="_blank"&gt;µTasker Kinetis support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;KL25: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/FRDM-KL25Z.html" target="_blank"&gt;µTasker Kinetis FRDM-KL25Z support&lt;/A&gt; / &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/TWR-KL25Z48M.html" target="_blank"&gt;µTasker Kinetis TWR-KL25Z48M support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;LCD: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF" target="_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Mar 2015 22:30:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342309#M16570</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-03-23T22:30:56Z</dc:date>
    </item>
    <item>
      <title>Re: Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342310#M16571</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That worked! I just thought there would be a more direct way for doing this (like in the S08).&lt;/P&gt;&lt;P&gt;Thanks!!!!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Mar 2015 14:55:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342310#M16571</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-24T14:55:18Z</dc:date>
    </item>
    <item>
      <title>Re: Basic question about GPIO usage in Kinetis devices</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342311#M16572</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know what the S08's PTBD_PTBD0 does but the Kinetis has the ability to set, clear or toggle single/multiple pins. What the Kinetis can't do is set of clear single pins based on a variable in a single instruction.&lt;/P&gt;&lt;P&gt;However, even with more instructions it will do it much faster than an S08 with its single one ;-)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kinetis: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis.html" target="_blank"&gt;µTasker Kinetis support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;KL25: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/FRDM-KL25Z.html" target="_blank"&gt;µTasker Kinetis FRDM-KL25Z support&lt;/A&gt; / &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/kinetis/TWR-KL25Z48M.html" target="_blank"&gt;µTasker Kinetis TWR-KL25Z48M support&lt;/A&gt;&lt;/P&gt;&lt;P&gt;LCD: &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF" target="_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerLCD.PDF&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Mar 2015 15:20:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Basic-question-about-GPIO-usage-in-Kinetis-devices/m-p/342311#M16572</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-03-24T15:20:11Z</dc:date>
    </item>
  </channel>
</rss>

