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
Why create new threads?
http://www.keil.com/forum/docs/thread15566.asp
If you don't get a response, it is most probably because yuor post doesn't contain enough information for anyone to help you, so you should instead try to add more information. In this case, it may be required that yuo post some of the code, since we just can't read your code to spot any bugs. And you haven't mentioned what chips you are using either.
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.
View all questions in Keil forum