Hi
I have an error that shows its ugly head now and then.... The µC I'm using is C8051F122.
When I debug I can locate the problem, but the bug does not show the same place in code all times.
What I see now is that when stepping over the following line:
SMB0CN = 0x44;
The register SMB0CN actually is set to 0xC4. This sets the BUSY bit in the register.
It can be resolved by removing the µC supply, but a RESET won't do. But after some time the problem shows again.....
Does anyone have an idea????
Best Regards....
I have tried to use lower the optimisation with no luck. The problem is that I can not recreate the problem, so it is very hard to locate.
I have I2C interrupt enabled, but it should not change the memory content. I have tried to set a break point in the interrupt function and it does enter the function.
I guess the SMB0CN.7 bit is set to indicate if any device on the I2C line is trying to communicate, or?