Zu Problem 1:
Das mit den Bauteiltoleranzen stimmt.
Ich habs behoben indem ich in asuro.c
auf gut Glück folgende Zeile Manipuliert habe:

asuro.c, Funktion: PollSwitch

Originalzeile:
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));

Manipulierte Zeile:
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 62.0 + 0.5));