HMC5883, the Devil compass

I have a single ProMini reading a GPS unit, and the HMC5883 magnetometer, conditioning these data, and forwarding them to another Promini. So my little reader Promini has two active software serial links, and an I2C link to the compass. I set up a 1 sec. timer interrupt to read the HMC5883, and found that the software simply hung whenever I attempted the read. Finally, I put the HMC5883 read outside of the timer code, and the software was now able to read everything and perform all functions.

So what is the deal with timers and I2C? Does the I2C firmware in the Promini also use timer 1?

Thanks in advance for any insights.

No, not at all. But the I2C uses interrupts. I hope you use the HMC5883 at 3.3V ?

Yes, I used 3.3 v. for supply, and found a dandy bidirectional little level shifter circuit in Philips AN97055. For those of you mixing 5 v. and 3.3 v. (or any two levels, for that matter), this little circuit is a Godsend.