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
Related Link:
http://www.keil.com/forum/docs/thread15455.asp
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.