Das Problem liegt offenbar an deinen I2C Routinen. Bei I2C muss auch überprüft werden ob die Clock-Leitung nach dem Pulse wieder High ist. Wenn nein, dann will der Slave nämlich das der Master etwas wartet.

Ältere Routinen die noch oft bei der CC1 und CC2 verwendet werden berücksichtigen dies nicht, da früher wenige Slaves von dieser EIgenschaft Gebrauch gemacht haben . In neuerer Hardware/Compilern (z.B. Bascom / AVR) ist sowas schon länger integriert.

Also einfach die Routinen etwas umschreiben. Leider habe ich keine CC1 mehr, somit kann ich kein Beispiel bereitstellen. Aber vielleicht hilft dir da ein anderer CC1 Experte.

Gruß Frank