Weil es nicht sofort klappt gleich die Flinte ins Korn ?

Was kommt danach ?

Spannende Schrittmotoren wo du dann wieder beim ersten Problem (zb. Strombegrenzung) die Flinte ins Getreide pfefferst und dich wieder "anderen spannenden sachen" zuwendest ?

Wo soll das Enden ?

Fang einfach mal an dich mit jedem Teilaspekt auseinanderzusetzen statt gleich "Volldampf Vorraus" zu handeln.
Anfangen würde ich mit I2C.
Prinzip,Geschichte,Limmits,Das Elektrische und nicht zu vergessen das Busprotokoll.


Dein Programm ist ja nicht schlecht aber ich vermisse da einiges.

Hinter der I2C Pinkonfiguration sollte man den I2C Takt mit zb. "Config I2cdelay = 5" definieren denn wenn du den 1307 gleich mit 400 Khz fütterst dann macht der das nicht mit weil er nur bis 100 Khz kann.

Dann vieleicht noch "Config Clock = User" um dem Compiler mitzuteilen woher du deine Zeit beziehen möchtest.
Dann könntest du einfacher Arbeiten.

Einen Beispielcode kann ich dir auch noch liefern wenn du es nicht allein zusammen bekommst.
Muß ich aber erstmal raussuchen.