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

Problem on I2C

Hello Guys,

I was able to accomplish the I2C Interrupts ; When I created a separate project for I2C Interrupts I was able to read all the data on req addresses but later when I integrated the I2C Interrupt Routine with my current development application , I was able to read only the first ten address locations , the code remains the same. Where should be the problem ???

> Thanks for all your Support .

> Looking forward,
> Samjith

Parents Reply Children
  • Hi Samjith Wasim,

    case 0x58:
        I21CONSET = 0x20;
        break;
    

    case 0x58 is
    Master Receiver mode;
    Data byte has been received; NOT ACK has been returned.

    Why set start flag?

    You need to:

    1. Re-read the manual, re-write your code.

    2. Trace your code step by step.

  • Hello John,

    Because case 0x58 is a state where NACK is recevied , So in the manual they have specified under case 0x58 which means NACK received , please re-start the communication .
    Thats why I provided with I2CONSET =0x20 (Start Condition).

    Thanks for your Support,
    Looking forward,
    Samjith.

  • -> When I created a separate project for I2C Interrupts I was able to read all the data on req addresses <-

    I would suggest that, check the working fine separate project,

    1. call the I2C reading procedure within a loop, lets say, loop for 20 times,

    2. and make sure that, you can get all the data correctly each time.