Hi!
I'm working on LPC1857 controller and I required to test the i2c code I wrote. As far as I can see,as per data-sheet I've got all right with code. While the application is run, i2c is disabled.
I debugged and found that while clearing only the i2c-interrupt flag the entire control register for i2c is cleared, thereby disabling i2c.
>LPC_I2C0->CONCLR |= 0X00000008; // clear i2c interrupt only
Hope I made my doubt clear.
Thanks for anyone suggest anything to avoid this problem.
When single-stepping, the I2C controller often still operates at full-frequency.
So if the program works when single-stepping but not when running full-speed, then you might write to an I2C register before the previous operation has finished. When single-stepping, you add extra time between the instructions of your main loop, giving the I2C interface enough time.