<?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 Need help starting out with NXP LPC1114 coding in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579192#M23995</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by AdrianYong on Sun Aug 12 23:36:54 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do know C programming but I am new to microcontroller programming. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Firstly, I notice that I cannot find information about coding from data sheet of the LPC1114. The datasheet does describe the registers but not their "names" in the compiler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;where do I get information regarding the "names/pointers" as shown below and ways of accessing other functions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;STAT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;CONCLR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;CONSET&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SYSCON&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:38:00 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:38:00Z</dc:date>
    <item>
      <title>Need help starting out with NXP LPC1114 coding</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579192#M23995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by AdrianYong on Sun Aug 12 23:36:54 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do know C programming but I am new to microcontroller programming. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Firstly, I notice that I cannot find information about coding from data sheet of the LPC1114. The datasheet does describe the registers but not their "names" in the compiler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;where do I get information regarding the "names/pointers" as shown below and ways of accessing other functions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;STAT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;CONCLR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_12C-&amp;gt;CONSET&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SYSCON&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:38:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579192#M23995</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:38:00Z</dc:date>
    </item>
    <item>
      <title>Re: Need help starting out with NXP LPC1114 coding</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579193#M23996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by yanvasilij on Mon Aug 13 00:41:23 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The C Programming Language Ritchie &amp;amp; kernighan )). You should to read pointers to structures&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:38:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579193#M23996</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: Need help starting out with NXP LPC1114 coding</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579194#M23997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Mon Aug 13 00:44:46 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt; The datasheet does describe the registers but not their "names" in the compiler.&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;If you search for 'LPC1114' keyword at&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.nxp.com/&lt;/A&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;you also find an 'User Manual', UM10398 LPC111x/LPC11Cxx User manual Rev. 11 &amp;amp;#8212; 26 July 2012: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.nxp.com/documents/user_manual/UM10398.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;...where do I get information regarding the "names/pointers"...&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;Follow your header, CMSIS inc folder is including 'LPC11xx.h' with a lot of funny structs &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
/*------------- Inter-Integrated Circuit (I2C) -------------------------------*/
/** @addtogroup LPC11xx_I2C LPC11xx I2C-Bus Interface
&amp;nbsp; @{
*/
typedef struct
{
&amp;nbsp; __IO uint32_t CONSET;&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;lt; Offset: 0x000 I2C Control Set Register (R/W) */
&amp;nbsp; __I&amp;nbsp; uint32_t STAT;&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;lt; Offset: 0x004 I2C Status Register (R/ ) */
&amp;nbsp; __IO uint32_t DAT;&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;lt; Offset: 0x008 I2C Data Register (R/W) */
&amp;nbsp; __IO uint32_t ADR0;&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;lt; Offset: 0x00C I2C Slave Address Register 0 (R/W) */
&amp;nbsp; __IO uint32_t SCLH;&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;lt; Offset: 0x010 SCH Duty Cycle Register High Half Word (R/W) */
&amp;nbsp; __IO uint32_t SCLL;&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;lt; Offset: 0x014 SCL Duty Cycle Register Low Half Word (R/W) */
&amp;nbsp; __O&amp;nbsp; uint32_t CONCLR;&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;lt; Offset: 0x018 I2C Control Clear Register ( /W) */
&amp;nbsp; __IO uint32_t MMCTRL;&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;lt; Offset: 0x01C Monitor mode control register (R/W) */
&amp;nbsp; __IO uint32_t ADR1;&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;lt; Offset: 0x020 I2C Slave Address Register 1 (R/W) */
&amp;nbsp; __IO uint32_t ADR2;&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;lt; Offset: 0x024 I2C Slave Address Register 2 (R/W) */
&amp;nbsp; __IO uint32_t ADR3;&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;lt; Offset: 0x028 I2C Slave Address Register 3 (R/W) */
&amp;nbsp; __I&amp;nbsp; uint32_t DATA_BUFFER;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*!&amp;lt; Offset: 0x02C Data buffer register ( /W) */
&amp;nbsp; __IO uint32_t MASK0;&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;lt; Offset: 0x030 I2C Slave address mask register 0 (R/W) */
&amp;nbsp; __IO uint32_t MASK1;&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;lt; Offset: 0x034 I2C Slave address mask register 1 (R/W) */
&amp;nbsp; __IO uint32_t MASK2;&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;lt; Offset: 0x038 I2C Slave address mask register 2 (R/W) */
&amp;nbsp; __IO uint32_t MASK3;&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;lt; Offset: 0x03C I2C Slave address mask register 3 (R/W) */
} LPC_I2C_TypeDef;
/*@}*/ /* end of group LPC11xx_I2C */
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:38:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579194#M23997</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:38:02Z</dc:date>
    </item>
    <item>
      <title>Re: Need help starting out with NXP LPC1114 coding</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579195#M23998</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Mon Aug 13 00:45:22 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;These are defined in the CMSIS library/project for your part. It provides header files and a library to simplify access to the peripherals. Import any of the examples for LPC1114 and you will find&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- CMSIS library&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- some examples that use the library&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Enjoy!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:38:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579195#M23998</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:38:03Z</dc:date>
    </item>
    <item>
      <title>Re: Need help starting out with NXP LPC1114 coding</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579196#M23999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by frame on Tue Aug 14 11:39:13 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Having turned to develop SW for microcontrollers just recently (i.e. a few years ago), I understand the confusion behind this question.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In C/C++ coding for a 'real' OS, fixed addresses are almost taboo. Interrupts are hidden in the OS, "while (1)" loops are virtually unknown,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and there are plenty of comfortable library functions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To the things you mentioned:&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;LPC_12C-&amp;gt;STAT&lt;BR /&gt;LPC_12C-&amp;gt;CONCLR&lt;BR /&gt;LPC_12C-&amp;gt;CONSET&lt;BR /&gt;LPC_IOCON&lt;BR /&gt;LPC_SYSCON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;It is a common 'trick' in embedded development to define a struct exactly matching the register layout of a peripheral,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and creating an instance of this struct at the actual address of the peripheral. This way, you can have the compiler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and linker fiddle with this addresses, while having nice looking and portable source code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The header file defining this structs are usually supplied by the silicon vendor. In this case, ARM and NXP.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that all those structured register definitions are declared 'volatile'. That keyword used rather frequently in embedded SW.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To come to the point:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In addition to the CMSIS files and the user manual, I suggest to grab a tutorial to embedded C programming.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There are plenty around on the net. And it has not necessarily to be one for ARM Cortex controllers.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:38:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Need-help-starting-out-with-NXP-LPC1114-coding/m-p/579196#M23999</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:38:03Z</dc:date>
    </item>
  </channel>
</rss>

