der i2c-bus hat maximal 100 kHz.
8MHz/265=31,25kHz. aber: wahrscheinlich liegt die clock/taktleitung auf maximal 100kHz, dann werden einzelne bits mit dieser geschwindigkeit übertragen. dann sind es 31,25*8(bits pro byte) plus startbedingung und stopbedingung... dann wirds doch zu knapp. müsstest du wohl doch entweder einzeln abfragen. oder du nutzt die i2cmaster lib von peter fleury, wie die meisten hier im forum. die ist
1. schon fertig
2. in assembler, und braucht wenig speicher im flash
3. gut anpassbar
4. alle verzögerungen für den störungsfreien betrieb (inkl. clock stretching und begrenzung auf 100kHz) sind implementiert.

genauere infos zum i2c-bus sind hier:
http://www.robot-electronics.co.uk/h...he_i2c_bus.htm

und such mal im forum nach i2c, da findest du einiges.
ich lasse die interrupts meist an, wobei es an sich nicht schaden könnte die abzuschalten. der interrupt für die sleep-funktion wird 36000mal pro sekunde ausgelöst, und stört die kommunikation trotzdem nicht.

denk dran: ohne interrupts keine sleep/msleep/SerWrite/SerRead/... also immer ans einschalten denken!!
probiers mit eingeschaltet lassen, wenns nicht geht dann mach sie aus.