<?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 Storing Contents of a Register in a variable in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Storing-Contents-of-a-Register-in-a-variable/m-p/424240#M24382</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to store the contents of Port Data Input Register into an array data[i].&lt;/P&gt;&lt;P&gt;code is as follows:&lt;/P&gt;&lt;P&gt;#include "MKL46Z4.h"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Device header&lt;/P&gt;&lt;P&gt;void InitLED(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5=SIM_SCGC5_PORTD_MASK;// Enable clock to PORTD&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[5]=256;// Set pin 5 of PORTD as GPIO&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTD-&amp;gt;PDDR=(1u&amp;lt;&amp;lt;5);// Set pin 5 of PORTD as OUTPUT&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void InitSYSTICK(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;CTRL=0;//Disable the systick timer&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;LOAD=0x00FFFFFF;//Reload it to its full value 24 bits&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;VAL=0;//Write something in current register to reset it&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;CTRL=0x00000005;//101//1=bus clock,0= Disable interrupt,1= enable systick timer &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;int main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile unsigned long time[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile unsigned long data[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned long i=0,now=0,last=0,j=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; InitLED();&lt;/P&gt;&lt;P&gt;&amp;nbsp; InitSYSTICK();&lt;/P&gt;&lt;P&gt;&amp;nbsp; last=SysTick-&amp;gt;VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTD-&amp;gt;PTOR=(1u&amp;lt;&amp;lt;5);//Toggle LED&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(i&amp;lt;50)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; now=SysTick-&amp;gt;VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; time[i]=(last-now);&lt;/P&gt;&lt;P&gt;&amp;nbsp; data[i]=PTD-&amp;gt;PDIR;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; last=now;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(j=0;j&amp;lt;=800000;j++)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;When I write data[i]=PTD-&amp;gt;PDIR; and debug, it goes to HardFault_Handler. I don't know what is the problem with this statement.Please Help?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Sep 2015 15:27:09 GMT</pubDate>
    <dc:creator>rohananand</dc:creator>
    <dc:date>2015-09-30T15:27:09Z</dc:date>
    <item>
      <title>Storing Contents of a Register in a variable</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Storing-Contents-of-a-Register-in-a-variable/m-p/424240#M24382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to store the contents of Port Data Input Register into an array data[i].&lt;/P&gt;&lt;P&gt;code is as follows:&lt;/P&gt;&lt;P&gt;#include "MKL46Z4.h"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Device header&lt;/P&gt;&lt;P&gt;void InitLED(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5=SIM_SCGC5_PORTD_MASK;// Enable clock to PORTD&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[5]=256;// Set pin 5 of PORTD as GPIO&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTD-&amp;gt;PDDR=(1u&amp;lt;&amp;lt;5);// Set pin 5 of PORTD as OUTPUT&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;void InitSYSTICK(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;CTRL=0;//Disable the systick timer&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;LOAD=0x00FFFFFF;//Reload it to its full value 24 bits&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;VAL=0;//Write something in current register to reset it&lt;/P&gt;&lt;P&gt;&amp;nbsp; SysTick-&amp;gt;CTRL=0x00000005;//101//1=bus clock,0= Disable interrupt,1= enable systick timer &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;int main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile unsigned long time[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile unsigned long data[50];&lt;/P&gt;&lt;P&gt;&amp;nbsp; unsigned long i=0,now=0,last=0,j=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; InitLED();&lt;/P&gt;&lt;P&gt;&amp;nbsp; InitSYSTICK();&lt;/P&gt;&lt;P&gt;&amp;nbsp; last=SysTick-&amp;gt;VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTD-&amp;gt;PTOR=(1u&amp;lt;&amp;lt;5);//Toggle LED&lt;/P&gt;&lt;P&gt;&amp;nbsp; if(i&amp;lt;50)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; now=SysTick-&amp;gt;VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; time[i]=(last-now);&lt;/P&gt;&lt;P&gt;&amp;nbsp; data[i]=PTD-&amp;gt;PDIR;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; last=now;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; for(j=0;j&amp;lt;=800000;j++)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {}&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;When I write data[i]=PTD-&amp;gt;PDIR; and debug, it goes to HardFault_Handler. I don't know what is the problem with this statement.Please Help?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Sep 2015 15:27:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Storing-Contents-of-a-Register-in-a-variable/m-p/424240#M24382</guid>
      <dc:creator>rohananand</dc:creator>
      <dc:date>2015-09-30T15:27:09Z</dc:date>
    </item>
    <item>
      <title>Re: Storing Contents of a Register in a variable</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Storing-Contents-of-a-Register-in-a-variable/m-p/424241#M24383</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;Presumably there is something wrong with PTD-&amp;gt;PDIR. I would step the code in disassemble mode and see which addresses are being accessed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Other possibilities:&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC5=SIM_SCGC5_PORTD_MASK;// Enable clock to PORTD&lt;/P&gt;&lt;P&gt;looks risky.&lt;/P&gt;&lt;P&gt;It is OK to enable the port but if you happen to have the same style somewhere (that is not visible in what you have shown eg.&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC5=SIM_SCGC5_PORTC_MASK;// Enable clock to PORTC&lt;/P&gt;&lt;P&gt;it will be disabing the clock to Port D and then any accesses will hard fault).&lt;/P&gt;&lt;P&gt;The usual style is&lt;/P&gt;&lt;P&gt;SIM-&amp;gt;SCGC5&lt;STRONG&gt;|&lt;/STRONG&gt;=SIM_SCGC5_PORTD_MASK;// Enable clock to PORTD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also view the Port D registers in the debugger - if any can't be accessed it will also be displayed there.&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;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL46: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL46Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL46Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/TWR-KL46Z48M.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/TWR-KL46Z48M.html&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;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7ed529;"&gt;:smileyinfo: Out-of-the-box support for 46 Kinetis boards and 10 IDEs (&lt;EM&gt;460 combinations from a single code source with no porting required&lt;/EM&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Sep 2015 16:39:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Storing-Contents-of-a-Register-in-a-variable/m-p/424241#M24383</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-09-30T16:39:59Z</dc:date>
    </item>
  </channel>
</rss>

