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

Switch/Case in I2C interrupt

Hi,

I am using C8051F005 as I2C slave.
In the I2C interrupt, there is switch/case statement to load SMB0DAT with data to be output based on the OP_CODE. There are 15 cases.
The master will get wrong data (or say will get 255) if 15 cases are included in the salve side.
The master will work fine if 14 cases are included.

I am wondering if one more case causes the timing problem -- so slow to response.

So I selected ROM (COMPACT) which was mentioned in the knewledgebase, AJMP instructions is used.
http://www.keil.com/support/docs/1316.htm

But the data is still transfered wrong with 15 cases.

Any suggestions?
Thank you!

0