Code:
if(dif > 100) dif = 100; /* Obergrenze 100*/
if(dif < 100) dif = -100; /* Untergrenze -100*/
/* Wertebereich nun -100 ... 100 !!*/

if(dif==100) /* genau gleich 100 ?*/
...
else if(dif== -100) /* genau gleich -100?*/
...
else
/*tue nichts*/
Was macht das Programm bei z.B. 95, oder -43, oder ...?
Es ist doch seeehhhr unwahrscheinlich das die Werte genau erreicht werden. Ueberpruefe Deine Abfragen nochmal und sei nicht ganz so strikt mit den Forderungen.

Edit: ich sehe gerade, das Du ja nur die zwei Werte erreichen kannst. Ich sehs mir nochmal genauer an...

Edit2: RP6 dreht also immer entweder rechts oder links und findet nie eine Ruheposition...

Code:
if(dif < -100) dif = -100; /*so waers wohl besser*/
hth
Kay