deine code:

// Z�ldifferenz passend auf die Motoren verteilen
if (difference>0) iSpeed_left-difference;
else iSpeed_right+difference;
Hier passiert nichts! Dort wird nur eine summe/differenz gemacht. Aber die iSpeed_left und iSpeed_right variabelen werden damit nicht geändert.

Mache das mit:

iSpeed_left-=difference; /* nehm difference ab von iSpeed_left */
iSpeed_right+=difference; /* addiere difference zu iSpeed_right */