<?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: Lpc1768 - i2c 0 in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527311#M412</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by daniel.widyanto on Mon Oct 15 00:11:17 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Check with your oscilloscope if your I2C slave is working.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The sequence should be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[LIST=1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[1]0x08 -&amp;gt; START bit sent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2]0x18 -&amp;gt; I2C slave address sent and slave responds with ACK (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2a]0x20 -&amp;gt; I2C slave address sent and slave responds with NACK (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2b]0x38 -&amp;gt; Only happen in multi-master I2C bus (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2c]0x68 -&amp;gt; Only happen in multi-master I2C bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/LIST]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I suppose you are addressing incorrect I2C slave, and hence receiving 0x20 (instead of 0x18) as I2C mode, because the I2C slave didn't respond (NACK received) to the slave address.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:01:37 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:01:37Z</dc:date>
    <item>
      <title>Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527304#M405</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by teslabox on Thu Mar 22 07:44:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I try to connect to the LIS3DH accelerometer thru the I2C bus.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the LIS3DH datasheet there is written that it has the I2C digital output (16 bits resolution). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;First I initialized I2C for set clock timing at Standard Drive Speed Mode (100 kbps) but there is no clock signal on the SCL0 line (all the time is the high level) - I checked it by oscilloscope.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Below I send my C code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1&amp;lt;&amp;lt;7);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wlaczenie zasilania i sygnalu zegarowego dla kontrolera magistrali I2C 0

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.27 jako GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;23);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.27 jako GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.28 jako GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;25);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.28 jako GPIO

&amp;nbsp;&amp;nbsp;&amp;nbsp; // prze&amp;amp;#322;&amp;amp;#261;czenie funkcji wyprowadze&amp;amp;#324; z GPIO na SDA0 dla I2C 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.27 jako SDA0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;23);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.27 jako SDA0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 |= (1&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.28 jako SCL0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;25);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ustawienie wyprowadzenia P0.28 jako SCL0

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;=~(1&amp;lt;&amp;lt;14);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // w&amp;amp;#322;&amp;amp;#261;czenie sygna&amp;amp;#322;u zegarowego dla kontrolera I2C; bity 14 i 15 PCLK_I2C0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;=~(1&amp;lt;&amp;lt;15);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // w&amp;amp;#322;&amp;amp;#261;czenie sygna&amp;amp;#322;u zegarowego dla kontrolera I2C; bity 14 i 15 PCLK_I2C0
&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;&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; /* warto&amp;amp;#347;ci: 00 - PCLK UART0 = CCLK/4
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01 - PCLK UART0 = CCLK
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 - PCLK UART0 = CCLK/2
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11 - PCLK UART0 = CCLK/8
&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;&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; * gdzie:&amp;nbsp;&amp;nbsp;&amp;nbsp; x&amp;nbsp; - bit starszy (np. z pary bitów PCLK_I2C0 to bit 15)
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x - bit m&amp;amp;#322;odszy (np. z pary bitów PCLK_I2C0 to bit 14)
&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;&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; NVIC_EnableIRQ(I2C0_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // w&amp;amp;#322;&amp;amp;#261;czenie generowania przerwa&amp;amp;#324; od kontrolera magistrali I2C 0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit STA: START flag sending, bit I2CEN: I2C interface enable -&amp;gt; MASTER MODE
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;I2CPADCFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;=~(1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;1)|(1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3); // Standard Drive Mode (pr&amp;amp;#281;dkosc na 100 kbps)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienne pomocnicze

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienne przechowuj&amp;amp;#261;ce warto&amp;amp;#347;&amp;amp;#263;i zegarów
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t MainOscFreq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // czestotliwo&amp;amp;#347;&amp;amp;#263; taktowania g&amp;amp;#322;ównego oscylatora "XTAL" - kwarcu zewn&amp;amp;#281;trznego
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t PLL0Freq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cz&amp;amp;#281;&amp;amp;#347;totliwo&amp;amp;#347;&amp;amp;#263; taktowania na wyj&amp;amp;#347;ciu p&amp;amp;#281;tli PLL0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t CoreFreq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cz&amp;amp;#281;stotliwo&amp;amp;#347;&amp;amp;#263; taktowania rdzenia procesora ARM
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t APB0Freq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cz&amp;amp;#281;&amp;amp;#347;totliwo&amp;amp;#347;&amp;amp;#263; taktowania magistrali APB0 (do której pod&amp;amp;#322;&amp;amp;#261;czony jest UART0 i UART1)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienne przechowuj&amp;amp;#261;ce warto&amp;amp;#347;ci dzielników preslalerów poszczególnych cz&amp;amp;#281;stotliwo&amp;amp;#347;ci taktownia

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienne przechowuj&amp;amp;#261;ce warto&amp;amp;#347;&amp;amp;#263; dzielnika i mno&amp;amp;#380;nika w p&amp;amp;#281;tli PLL0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t PLL0Div&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik N w p&amp;amp;#281;tli PLL0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t PLL0Mult&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // mno&amp;amp;#380;nik&amp;nbsp; M w p&amp;amp;#281;tli PLL0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienna przechowuj&amp;amp;#261;ca warto&amp;amp;#347;&amp;amp;#263; dzielnika cz&amp;amp;#281;stotliwo&amp;amp;#347;ci taktowania rdzenia procesora ARM
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t CoreDiv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik cz&amp;amp;#281;stotliwo&amp;amp;#347;ci p&amp;amp;#281;tli PLL0 dla taktowania rdzenia procesora ARM

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // zmienna przechowuj&amp;amp;#261;ca warto&amp;amp;#347;&amp;amp;#263; dzielnika cz&amp;amp;#281;stotliwo&amp;amp;#347;ci taktowania magistrali systemowej APB0 (Advanced Peripherial Bus)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t APB0Div&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik magistrali APB0 dla kontrolerów UART0 i UART1 (ta sama warto&amp;amp;#347;&amp;amp;#263;)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // obliczenie cz&amp;amp;#281;stotliwo&amp;amp;#347;ci poszczególnych zegarów

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; czestotliwo&amp;amp;#347;ci taktowania g&amp;amp;#322;ównego oscylatora "XTAL" - kwarcu zewn&amp;amp;#281;trznego
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainOscFreq = 12000000;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; cz&amp;amp;#281;&amp;amp;#347;totliwo&amp;amp;#347;ci na wyj&amp;amp;#347;ciu p&amp;amp;#281;tli PLL0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PLL0Mult = (((LPC_SC-&amp;gt;PLL0CFG)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; 0x00007FFF) + 1);&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; mno&amp;amp;#380;nika&amp;nbsp; p&amp;amp;#281;tli PLL0 bity 0 -14 MSEL0: M-1; maska 0000 0000 0000 0111 1111 1111 1111 (15 bitów)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PLL0Div&amp;nbsp; = (((LPC_SC-&amp;gt;PLL0CFG &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF) + 1);&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; dzielnika p&amp;amp;#281;tli PLL0 bity 16-23 NSEL0: N-1; maska 0000 0000 0000 0000 0000 1111 1111 (8 bitów)
&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;&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;&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; // i wcze&amp;amp;#347;niej przesuniecie bitowe o 16 bitów w prawo
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PLL0Freq = (2 * PLL0Mult * MainOscFreq) / (PLL0Div);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wzór ze str. 41 dokumentacji

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; cz&amp;amp;#281;stotliwo&amp;amp;#347;ci taktowaniardzenia procesora ARM
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CoreDiv&amp;nbsp; = (LPC_SC-&amp;gt;CCLKCFG) + 1;&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;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; dzielnika cz&amp;amp;#281;stotliwo&amp;amp;#347;ci p&amp;amp;#281;tli PLL0 dla taktowania rdzenia procesora ARM
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CoreFreq = PLL0Freq/CoreDiv;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; cz&amp;amp;#281;stotliwo&amp;amp;#347;ci taktowania rdzenia procesora ARM

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // warto&amp;amp;#347;&amp;amp;#263; cz&amp;amp;#281;&amp;amp;#347;totliwo&amp;amp;#347;ci taktowania magistrali APB0 (do której pod&amp;amp;#322;&amp;amp;#261;czony jest CAN1 i CAN2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APB0Div&amp;nbsp; = ((LPC_SC-&amp;gt;PCLKSEL0 &amp;gt;&amp;gt; 6) &amp;amp; 0x00000003);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik magistrali APB0 dla kontrolera magistrali UART0 bity 6 i 7 PCLK_UART0
&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;&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;&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; // maska 0000 0000 0000 0000 0000 0000 0000 0011 i wcze&amp;amp;#347;niej przesuniecie bitowe o 6 bitów w prawo
&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; if (APB0Div == 0x00)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik = 4;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APB0Freq = CoreFreq/4;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (APB0Div == 0x01)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik = 1;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APB0Freq = CoreFreq/1;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (APB0Div == 0x02)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik = 2;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APB0Freq = CoreFreq/2;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (APB0Div == 0x03)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dzielnik = 8;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APB0Freq = CoreFreq/8;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLH = (APB0Freq/100000)/2;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 100000 - 100 kpbs (Standard I2C Drive Speed Mode)
&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; LPC_I2C0-&amp;gt;I2SCLL = (APB0Freq/100000)/2; // 100000 - 100 kpbs (Standard I2C Drive Speed Mode)
&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; // divider is 2; it gives I2C period Duty Cycle = 50 % at 100 kbps speed&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 23:01:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527304#M405</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:32Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527305#M406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by serge on Thu Mar 22 07:59:11 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;As long as you don't send (or read) any data the SCL line should be high. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I had no time to really check out your code (my polish is not good enough (dzien dobry)) but does the SCL line stay high when trying to send data?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527305#M406</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:34Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527306#M407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Rob65 on Thu Mar 22 23:03:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a number of I2C examples floating around.&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://http://hg.bikealive.nl/Platform1754/file/"&gt;Here&lt;/A&gt;&lt;SPAN&gt; is my I2C driver (look in Drivers/lpc17xx) - an enhanced version of the NXP one. Unfortunately still without example or documentation on how to use it ... I might fix that this weekend.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT]Rob&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527306#M407</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:34Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527307#M408</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by teslabox on Fri Mar 23 02:44:48 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I wrote a part of code for my start. IN the beginig SCL line is in HI level and when I write START bit it goes on the LOW and when I write Slave Address to the bus nothing shows on the osciloscope (LOW level on thew SDA).&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;
#define LIS3DH_SAD_W&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x30&amp;nbsp;&amp;nbsp;&amp;nbsp; // SAD_W - Slave Address and Write to the slave,&amp;nbsp; SAD[0]=SA0=0 (GND)
#define LIS3DH_SAD_R&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x31&amp;nbsp;&amp;nbsp;&amp;nbsp; // SAD_R - SLave Address and Read from the slave, SAD[0]=SA0=0 (GND)

// main program
int main (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; All_LEDs_ResetandToogle ();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // toogle LEDs connected as shown in the definitions above

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1&amp;lt;&amp;lt;7);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // turn on Power and Clock for I2C 0

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;22)|(1&amp;lt;&amp;lt;23);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set P0.27 as GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;24)|(1&amp;lt;&amp;lt;25);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set P0.28 as GPIO

&amp;nbsp;&amp;nbsp;&amp;nbsp; // set from GPIO to SDA0 and SCL for I2C 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set P0.27 as SDA0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= (1&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set P0.28 as SCL0

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;14);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set Clock signal for I2C0; bits 14 i 15 PCLK_I2C0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 &amp;amp;=~(1&amp;lt;&amp;lt;15);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // set Clock signal for I2C0; bits 14 i 15 PCLK_I2C0
&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;&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; /* values: 00 - PCLK UART0 = CCLK/4 - this option is selected
&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;&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; 01 - PCLK UART0 = CCLK
&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;&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; 10 - PCLK UART0 = CCLK/2
&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;&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; 11 - PCLK UART0 = CCLK/8
&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;&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; * where:&amp;nbsp; x&amp;nbsp; - MSb; PCLK_I2C0 - bit 15
&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;&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;&amp;nbsp;&amp;nbsp; x - LSb; PCLK_I2C0 - bit 14
&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;&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; LPC_I2C0-&amp;gt;I2CONCLR |= (1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear flags: Assert acknowledge
&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;&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;&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; I2C interrupt
&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;&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;&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; START condition flag
&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;&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;&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; I2C bus enable

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;I2CPADCFG &amp;amp;=~(1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;1)|(1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3); // Standard Drive Mode (100 kbps)

&amp;nbsp;&amp;nbsp;&amp;nbsp; // PCLK_I2C0=CCLK/4=100MHz/4=25MHz-&amp;gt;25000kHz/100kHz=250=I2SCLH+I2SCLL
&amp;nbsp;&amp;nbsp;&amp;nbsp; // for 50 &amp;amp; Duty Cycle =&amp;gt; 125 + 125
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLH = 125;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 100000 - 100 kpbs (Standard I2C Drive Speed Mode)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLL = 125; // 100000 - 100 kpbs (Standard I2C Drive Speed Mode)
&amp;nbsp;&amp;nbsp;&amp;nbsp; // divider is 2; it gives I2C period Duty Cycle = 50 % at 100 kbps speed

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(I2C0_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable interrupting from I2C 0

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET |= (1&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit I2CEN: I2C interface enable, Master mode

&amp;nbsp;&amp;nbsp;&amp;nbsp; delay (300);

&amp;nbsp;&amp;nbsp;&amp;nbsp; // MASTER IS WRITTING
&amp;nbsp;&amp;nbsp;&amp;nbsp; // send configuration to LIS3DH
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET |= (1&amp;lt;&amp;lt;5);&amp;nbsp;&amp;nbsp;&amp;nbsp; // set START bit
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2DAT = LIS3DH_SAD_W;&amp;nbsp;&amp;nbsp;&amp;nbsp; // write Slave Address (SAD)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR |= (1&amp;lt;&amp;lt;5);&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear START bit after write SAD



&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;)
&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; // do nothing for now
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);
}&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 23:01:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527307#M408</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:35Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527308#M409</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by teslabox on Wed Oct 10 00:47:15 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I came back to this staff. I need to use 256 kb EEPROM memory (ATMEL AT24C256) to storage some data using again I2C with LPCXpresso LPC1769.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I carefully read the LPC1769 datasheet about the I2C bus and I wrote some C code for I2C as below:&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;// Function for the initialization I2C0 bus
void I2C0_InitMasterMode (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set I2C bus active
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1&amp;lt;&amp;lt;7);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the I2C0 bus power
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;=~(1&amp;lt;&amp;lt;14)|(1&amp;lt;&amp;lt;15);&amp;nbsp; // Set PCLK clock for I2C0 bus
&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;&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; // bits 14 and 15 = 0 -&amp;gt; PCLK_peripheral = CCLK/4
&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;&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; // CCLK = 100 MHz, PCLK = 100 MHz/4 = 25 MHz for bitrate frequency

&amp;nbsp;&amp;nbsp;&amp;nbsp; // First configure pins P0.27 and P0.28 as normal GPIO pins
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.27 as GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;23);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.27 as GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.28 as GPIO
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;25);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.28 as GPIO

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Now configure pins P0.27 and P0.28 as I2C0 bus pins
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.27 as SDA0 I2C0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;23);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.27 as SDA0 I2C0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 |= (1&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.28 as SCL0 I2C0
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL1 &amp;amp;=~(1&amp;lt;&amp;lt;25);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin P0.28 as SCL0 I2C0

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset (clear) the STAC andSIC bits for configure the Master Mode I2C0 bus
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR =&amp;nbsp; (1&amp;lt;&amp;lt;3);&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; // Reset (clear) SIC&amp;nbsp; bit (I2C interrupt)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR =&amp;nbsp; (1&amp;lt;&amp;lt;5);&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; // Reset (clear) STAC bit (START flag)

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calculate and set the proper value of I2C0 clock registers for 100 kHz bitrate frequency
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * I2C0_Freq = PCLK/(SCLH + SCLL)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * SCLH + SCLL = 25000 kHz/100 kHz = 250
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * SCLH = SCLL = 125 =&amp;gt; 50% duty cycle
&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLH&amp;nbsp;&amp;nbsp;&amp;nbsp; = 125;&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; // SCL prescaler High register
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2SCLL&amp;nbsp;&amp;nbsp;&amp;nbsp; = 125;&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; // SCL prescaler Low register

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configure I2C0 pin in the Standard Drive Mode
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;I2CPADCFG &amp;amp;=~(1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;1)|(1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp; // Standard Drive Mode (100 kbps)
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit 0 reset to 0 - The SDA0 pin is in the standard drive mode
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit 1 reset to 0 - The SDA0 pin has I2C glitch filtering and slew rate control enabled
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit 2 reset to 0 - The SCL0 pin is in the standard drive mode
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bit 3 reset to 0 - The SCL0 pin has I2C glitch filtering and slew rate control enabled

&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ (I2C0_IRQn);&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 the I2C0 Interrupts in the Global Interrupts; active
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET |= (1&amp;lt;&amp;lt;6);&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; // Enable the I2C0; bus bit 6
}

// The function for generate START condition
void I2C0_Start (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET = (1&amp;lt;&amp;lt;5);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the STA bit; bit 5
}

// I2C0 Interrupt function; Each Status Register change will cause enter into the I2C0_IRQHandler function
void I2C0_IRQHandler (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOSET |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED 1 P0.22 on

&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (LPC_I2C0-&amp;gt;I2STAT)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read value of the I2C0 Status Register
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I2C0 Status register value '0x08' meaning: 'A START condition has been transmitted'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Next step to do: 'SLA+W will be transmitted; ACK bit will be received'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x08:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send on the I2C0 "Slave Device Address" = 160 (b0 = 0 -&amp;gt; Write to the Slave device)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2DAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 160;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Slave Address is '1010 00X' where X is Read (R=1) or Write (W=1) bit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET&amp;nbsp; = (1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the AA bit (Assert Acknowledge)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR&amp;nbsp; = (1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset the SI bit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOSET&amp;nbsp;&amp;nbsp; |=(1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED on P2.2 on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Go out of the switch cases

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Status value meaning: 'SLA+W has been transmitted; ACK has been received'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Next step to do: 'Data byte will be transmitted; ACK bit will be received'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x18:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send on the I2C0 "First Word Data" = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2DAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONSET&amp;nbsp; = (1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the AA bit (Assert Acknowledge)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR&amp;nbsp; = (1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset the SI bit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOSET&amp;nbsp;&amp;nbsp; |=(1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED on P2.3 on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Go out of the switch cases

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Status value meaning: 'Data byte in I2DAT has been transmitted; ACK has been received'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Next step to do: 'Data byte will be transmitted; ACK bit will be received'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x28:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send on the I2C0 "Second Word Data" = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2DAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 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; LPC_I2C0-&amp;gt;I2CONSET&amp;nbsp; = (1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the AA bit (Assert Acknowledge)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_I2C0-&amp;gt;I2CONCLR&amp;nbsp; = (1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset the SI bit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOSET&amp;nbsp;&amp;nbsp; =(1&amp;lt;&amp;lt;4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED on P2.4 on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Go out of the switch cases

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // When I2C0 Status register will give other values then show this value on the LEDs 2-6 and turn the LED 1 off
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOCLR |= (1&amp;lt;&amp;lt;22);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED 1 P0.22 off
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOSET |= (1&amp;lt;&amp;lt;7);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED 7 P2.7 on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOCLR |= (1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn the LED 6-2 P2.2-P2.6 off
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOSET |= ((LPC_I2C0-&amp;gt;I2STAT) &amp;gt;&amp;gt; 3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Shift 3 bits right I2C0 Status Register
&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;&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;&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; // 5 bits 7-3 give the actual status information about the I2C interface
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------- //
// ---------------------------------------------------------------------- MAIN PROGRAM ---------------------------------------------------------------------- //
// ---------------------------------------------------------------------------------------------------------------------------------------------------------- //

/* 7 LEDs meaning:
 * LED 1 on the pin P0.22 - is turned on only if the program enters into the I2C0 Interrupt (START condition) (apart of enters into the 'default');
 * LED 2 on the pin P2.2&amp;nbsp; - is turned on only if the program enters into the I2C0 Interrupt and enters into the "case" with 0x08 value;
 * LED 3 on the pin P2.3&amp;nbsp; - is turned on only if the program enters into the I2C0 Interrupt and enters into the "case" with 0x28 value;
 * LED 5 on the pin P2.5&amp;nbsp; - is not used as a single LED;
 * LED 6 on the pin P2.6&amp;nbsp; - is not used as a single LED;
 * LED 7 on the pin P2.7&amp;nbsp; - is turned on only if the program enters into the I2C0 Interrupt and enters into the "default": then 'I2C Status Register' value (bits 7-3)
 *&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; is displayed on the five LEDs (b7-LED5, b6-LED5, b5-LED4, b4-LED3, b3-LED2) so turning on LEDs combination like: 00000X gives 0x08, 
 *&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; 000X0X gives 0x28, etc. Just write three zeros on the right side.
 *&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; - is toggling only if the program goes out of the I2C0 Interrupt and enters into the main 'for (;;)' loop in the main program;
*/

// Main program
int main (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the pins P2.3-P2.7 as the I2STAT register mirror in LEDs lights
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIODIR |= (1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;6)|(1&amp;lt;&amp;lt;7);
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOCLR |= (1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;6)|(1&amp;lt;&amp;lt;7);

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the pin P0.22 as output with LED
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIODIR |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pin GPIO P0.22 as an output
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;FIOCLR |= (1&amp;lt;&amp;lt;22);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // An output in low state

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initialization the I2C0 bus
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_InitMasterMode ();&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; // Initialization the I2C0 bus with 100 kbps bitrate frequency
&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_Start ();&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; // Generate the START condition, if START bit is set then program goes into "I2C0_IRQHandler"

&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t a = 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // A temporary 8-bit variable just for using 'for (;;)' loop below

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Toggle the LED 7 on the pin P2.7
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (a=0; a&amp;lt;255; a++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO2-&amp;gt;FIOPIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^= (1&amp;lt;&amp;lt;7); // Turn the LED on P2.7 on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay (100);&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; // Just wait for 100 ms
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;First I send START condidtion and the program enters into the I2C0 Interrupt (LED 1 turns on), next the '0x08' value of Status register is set (LED 2 turns on) but in the next step the program leaves&amp;nbsp; I2C0 Iterrupt (LED 7 is toogling) and there is no '0x28' value of the Status register and I don't know why it happen... I took a look at Rob65's C code on the &lt;/SPAN&gt;&lt;A href="http://" rel="nofollow noopener noreferrer" target="_blank"&gt;http://hg.bikealive.nl/Platform1754/file/ae0834ece8c9/Drivers/lpc17xx/i2c.c&lt;/A&gt;&lt;SPAN&gt; and in my opinion the basic/root steps are simillar. Any idea what is wrong in my C code?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527308#M409</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:36Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527309#M410</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by serge on Thu Oct 11 00:08:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you export en post your (partial) project here?:p&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So we can have a look at the complete picture.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527309#M410</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:36Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527310#M411</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by teslabox on Thu Oct 11 02:29:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok, there is a complete ZIP folder with project files.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I will be grateful for help in this case ;).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527310#M411</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:37Z</dc:date>
    </item>
    <item>
      <title>Re: Lpc1768 - i2c 0</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527311#M412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by daniel.widyanto on Mon Oct 15 00:11:17 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Check with your oscilloscope if your I2C slave is working.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The sequence should be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[LIST=1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[1]0x08 -&amp;gt; START bit sent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2]0x18 -&amp;gt; I2C slave address sent and slave responds with ACK (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2a]0x20 -&amp;gt; I2C slave address sent and slave responds with NACK (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2b]0x38 -&amp;gt; Only happen in multi-master I2C bus (or)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[2c]0x68 -&amp;gt; Only happen in multi-master I2C bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/LIST]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I suppose you are addressing incorrect I2C slave, and hence receiving 0x20 (instead of 0x18) as I2C mode, because the I2C slave didn't respond (NACK received) to the slave address.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:01:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Lpc1768-i2c-0/m-p/527311#M412</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:01:37Z</dc:date>
    </item>
  </channel>
</rss>

