<?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>8-bit MicrocontrollersのトピックRe: Basic IIC reading and writing between two 9S08's WITHOUT using interrupts.</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195857#M15659</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Could you show us, a piece of code that you are implementing.&lt;BR /&gt;Regards&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Feb 2008 03:53:41 GMT</pubDate>
    <dc:creator>erooll</dc:creator>
    <dc:date>2008-02-27T03:53:41Z</dc:date>
    <item>
      <title>Basic IIC reading and writing between two 9S08's WITHOUT using interrupts.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195856#M15658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I have tried the "How to use the IIC module" as well as many other references but I seem unable to get IIC&amp;nbsp;communications working between two 9S08's (one master addessed 0x11 and one slave addressed 0x33).&amp;nbsp; I am successful in having a MASTER send a slave ID (0x33) but the slave software does not send a ACK back.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Is IIC comms possible without using interrupts?&amp;nbsp; If so is there any examples I can try?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2008 21:55:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195856#M15658</guid>
      <dc:creator>mcookfromwi</dc:creator>
      <dc:date>2008-02-25T21:55:33Z</dc:date>
    </item>
    <item>
      <title>Re: Basic IIC reading and writing between two 9S08's WITHOUT using interrupts.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195857#M15659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Could you show us, a piece of code that you are implementing.&lt;BR /&gt;Regards&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Feb 2008 03:53:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195857#M15659</guid>
      <dc:creator>erooll</dc:creator>
      <dc:date>2008-02-27T03:53:41Z</dc:date>
    </item>
    <item>
      <title>Re: Basic IIC reading and writing between two 9S08's WITHOUT using interrupts.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195858#M15660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;The system seemed to loose my reply, this is my 2nd attempt.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/////////////////////////////////////////////////////////////&lt;BR /&gt;// Init_I2C&lt;BR /&gt;//&amp;nbsp; sets up the iic port according to the state&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; selfAddress = slave address&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;void Init_I2C (unsigned char selfAddress)&lt;BR /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOPT2_IICPS = 1; //Set the IICPS bit&amp;nbsp; to redirect IIc pins&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICC_IICEN = 1;//Enable IIC module&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICC_TXAK = 1;// SEND ACK&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICC_MST = 0;//SLAVE MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICA = selfAddress &amp;lt;&amp;lt; 1;//set slave address in IICA&amp;nbsp; //PTB6=SDA PTB7=SCL&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set baud rate = BUSCLK/(2xMULTx(SCL Divider))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MUX | ICR|&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&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;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICF = 0b10010000;//MUX=2,ICR=0x16 Speed=100Khz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICS_SRW = 0;//R/W bit&amp;nbsp; = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICC_IICIE = 0;//Disable IIC interrupt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//////////////////////////////////////////////////////////////////////////////////&lt;BR /&gt;// IIC_write_byte&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; Writes command and data to slave&lt;BR /&gt;//&amp;nbsp;&amp;nbsp; returns 0 if success&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 if error&lt;BR /&gt;byte IIC_write_byte (byte slave, byte command, byte data)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; byte temp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; byte timeout = 0xFF;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; temp = (slave)&amp;lt;&amp;lt;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Shift 7 bit slave address to the left 1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 = 0 = Write&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 = 1 = Read&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_TXAK = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // RX/TX = 1;&amp;nbsp; MS/SL = 1; TXAK = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC |= 0x30;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Generate START &amp;amp; set TX = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICD = temp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // select slave &amp;amp; set up for master transmit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while((IICS_RXAK)&amp;amp;&amp;amp;(timeout &amp;gt; 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeout --;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check for RXAK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; if(timeout == 0) return 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICD = command;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send byte address&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //while(IICS_RXAK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check for RXAK&lt;BR /&gt;&amp;nbsp;&amp;nbsp; timeout = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while((IICS_RXAK)&amp;amp;&amp;amp;(timeout &amp;gt; 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeout --;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check for RXAK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; if(timeout == 0) return 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICD = data;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //while(IICS_RXAK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check for RXAK&lt;BR /&gt;&amp;nbsp;&amp;nbsp; timeout = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while((IICS_RXAK)&amp;amp;&amp;amp;(timeout &amp;gt; 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeout --;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // check for RXAK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; if(timeout == 0) return 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_MST = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Generate STOP&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;//////////////////////////////////////////////////////////////////////////////////&lt;BR /&gt;//&amp;nbsp; IIC_read_byte&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; Writes command to slave and returns data from slave&lt;BR /&gt;//&amp;nbsp;&amp;nbsp; returns 0 if success&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 if error&lt;BR /&gt;byte IIC_read_byte (byte slave, byte command)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; byte RD_data;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; byte temp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; temp = (slave)&amp;lt;&amp;lt;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Shift 7 bit slave address to the left 1 bit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Lsb Bit = 0 = Write&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1 = Read&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_TXAK = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC |= 0x30;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Generate START&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICD = temp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Address slave | (RW = 0), write to slave&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the int flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while(IICS_RXAK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check for RXAK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; IICD = command;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send command to slave&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the int flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while(IICS_RXAK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check for RXAK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp; IICC_RSTA = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // setup repeated start&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICD = temp|1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // (slave_address)|(RW = 1), read from slave&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // wait until flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the int flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while(IICS_RXAK);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check for RXAK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_TX = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup to receive&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_TXAK = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Acknowledge disable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; RD_data = IICD;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Dummy read&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!IICS_IICIF);&amp;nbsp;&amp;nbsp; // Wait until IBIF flag is set&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IICC_MST = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Generate STOP&lt;BR /&gt;&amp;nbsp;&amp;nbsp; RD_data = IICD;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read data&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return RD_data;&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;[[[Below is ione of my attempts at the slave read routine]]]&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/////////////////////////////////////////////////////////////&lt;BR /&gt;// LL_Read()&lt;BR /&gt;byte LL_Read()&lt;BR /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //ToggleNum(0x33);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //return 0x33;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICC_TX = 0;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICC_TXAK = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Acknowledge enable&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICS_IICIF=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICC_MST = 0;//SLAVE MODE&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //while(IICS_TCF == 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp; ToggleNum(IICS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(IICS_IAAS)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICC_TX = IICS_SRW;&amp;nbsp; //SRW 0= slave receive, 1=slave transmit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IICS_IAAS = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup to receive&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[0] = IICD;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Dummy read to initiate the read data byte&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[1] = IICD;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //RD_data2 = IICD;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //read data&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICS_IICIF=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Clear the flag&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //IICC_MST = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Generate STOP&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Mar 2008 05:14:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195858#M15660</guid>
      <dc:creator>mcookfromwi</dc:creator>
      <dc:date>2008-03-04T05:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: Basic IIC reading and writing between two 9S08's WITHOUT using interrupts.</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195859#M15661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;what method are you using to maintain the IIC communication, interrupt or polling ?&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Jul 2008 23:34:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Basic-IIC-reading-and-writing-between-two-9S08-s-WITHOUT-using/m-p/195859#M15661</guid>
      <dc:creator>Designer11</dc:creator>
      <dc:date>2008-07-11T23:34:24Z</dc:date>
    </item>
  </channel>
</rss>

