This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Re-Post on INT

Guys sorry for my poor format for the same issue previously....

Hey Linq,

A good news infact for your valuable support , today I was able to comunicate with I2C , almost 90% is done . Can you help me out for these issues listed below ..

the state where i get data ,i.e

case 0x50 ( Data Recieved with ACK) :

Master_Buff[Read_Index] = I2DAT ;

Read_Index++;

if(Read_Index != MAX_READ)
{
   I21CONSET = 0x04 (ACK bit)
}

else
{

Read_Index = 0;
I21CONSET = 0x10 (stop)

}

When I track Master_Buff 's value and use it within the Interrupt using UARTBYte out under CASE 0x50 , i get the correct data .

When I track Master_Buff''s value outside the IRQ and use it in my main , i am not getting the data .

To be noted that Master_Buff is a global variable , Then where should be the problem ???

Thanks for your support !

Looking forward,
Samjith

Parents
  • Please read the LPC23XX User manual, Chapter 21: LPC23XX I2C interfaces I2C0/1/2, 6.2 Master Receiver mode, Fig 105. Format of Master Receive mode.

    And make sure that your code follows the I2C Master Receive standard.

    For example, before you send STOP, you should send [Not acknowledge] first.

    If you don't 100% follow the I2C standard, your code may work, with some strange behaviors.

Reply
  • Please read the LPC23XX User manual, Chapter 21: LPC23XX I2C interfaces I2C0/1/2, 6.2 Master Receiver mode, Fig 105. Format of Master Receive mode.

    And make sure that your code follows the I2C Master Receive standard.

    For example, before you send STOP, you should send [Not acknowledge] first.

    If you don't 100% follow the I2C standard, your code may work, with some strange behaviors.

Children