Funktion encoder.c ist super, sollte aber noch verbessert werden um Returnwert (int) oder (char), wenn die Räder sich nicht drehen( z.B. Hindernis, Verschmutzung) oder die Drehung der Scheiben nicht erkannt wird. (Verschmuzung der Encoder-Scheiben etc). Vielleicht kann man auch die Rückgabe über die Input_werte ( distance , speed ) machen (geht vielleicht mit Call by Reference ?). in denen man die tatsächlichen Zählwerte links und rechts bei Stillstand übergibt.

Im aufrufenden Programm könnte dann über die Returnwerte z.B die Fahrtrichtung geändert werden oder die Motoren abgeschaltet werden.