<?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: i2c using lpc open in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/i2c-using-lpc-open/m-p/522174#M4810</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by knuisje on Mon Mar 24 01:03:34 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You should probably use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;error_code = LPC_I2CD_API-&amp;gt;i2c_master_tx_rx_intr(i2cHandleMaster, &amp;amp;param, &amp;amp;result);&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 16:38:27 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T16:38:27Z</dc:date>
    <item>
      <title>i2c using lpc open</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/i2c-using-lpc-open/m-p/522173#M4809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by plantman on Tue Feb 11 02:19:27 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to use a ds1338 rtc (ds1307 compatible) on i2c with an lpc812 max board using pins P0_10, P0_11(marked sda scl) I have tried with and without pullup resistors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have it working on a 3.3v arduino setup but when I try to use it with&amp;nbsp; lpc open i just get an error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could someone please tell me the correct lpcopen code I need to use to replicate the arduino code below.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any help much appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In arduino I use &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; Wire.beginTransmission(DS1307_ADDRESS);

&amp;nbsp; byte zero = 0x00;
&amp;nbsp; Wire.write(zero);
&amp;nbsp; Wire.endTransmission();

&amp;nbsp; Wire.requestFrom(DS1307_ADDRESS, 1);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;what I have tried to use with lpc open.&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;
static void readDateI2CMaster(uint16_t AddressI2C, int *date)
{
uint8_t recvData[10], sendData[10];
I2C_PARAM_T param;
I2C_RESULT_T result;
ErrorCode_t error_code;
int sindex = 0, rindex = 0;


sendData[sindex++] = (uint8_t) AddressI2C&amp;nbsp; | 0x00;
sendData[sindex++] = (uint8_t) 0x00;

recvData[rindex++] = (uint8_t) AddressI2C&amp;nbsp; | 0x01;


param.num_bytes_send&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2;
param.num_bytes_rec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;
param.buffer_ptr_send&amp;nbsp;&amp;nbsp; = &amp;amp;sendData[0];
param.buffer_ptr_rec&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;amp;recvData[0];
param.stop_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;
#if defined(INTERRUPTMODE)
param.func_pt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = cbI2CComplete;
#endif

/* Set timeout (much) greater than the transfer length */
LPC_I2CD_API-&amp;gt;i2c_set_timeout(i2cHandleMaster, 100000);

/* Do master read transfer */
#if defined(INTERRUPTMODE)
intErrCode = -1;

/* Function is non-blocking, returned error should be LPC_OK, but isn't checked here */
error_code = LPC_I2CD_API-&amp;gt;i2c_master_receive_intr(i2cHandleMaster, &amp;amp;param, &amp;amp;result);

/* Sleep until transfer is complete, but allow IRQ to wake system
&amp;nbsp;&amp;nbsp; to handle I2C IRQ */
while (intErrCode == -1) {
__WFI();
}

/* Cast saved error code from callback */
error_code = (ErrorCode_t) intErrCode;

#else
error_code = LPC_I2CD_API-&amp;gt;i2c_master_receive_poll(i2cHandleMaster, &amp;amp;param, &amp;amp;result);
#endif

/* Completed without erors? */
if (error_code != LPC_OK) {
/* Likely cause is NAK */
DEBUGOUT("i2c_master_receive error code : %x\r\b", error_code);
errorI2C();
}

*date = (int) recvData[1];

}

&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 16:38:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/i2c-using-lpc-open/m-p/522173#M4809</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:38:26Z</dc:date>
    </item>
    <item>
      <title>Re: i2c using lpc open</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/i2c-using-lpc-open/m-p/522174#M4810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by knuisje on Mon Mar 24 01:03:34 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You should probably use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;error_code = LPC_I2CD_API-&amp;gt;i2c_master_tx_rx_intr(i2cHandleMaster, &amp;amp;param, &amp;amp;result);&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:38:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/i2c-using-lpc-open/m-p/522174#M4810</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:38:27Z</dc:date>
    </item>
  </channel>
</rss>

