Wenn die ganzen Variablen immer noch "unsigned char" (= 1 Byte) sind, dann geht sowieso nur max. 0xFF = 255 hinein und eine Abfrage wie "if speed1 > 255" wird niemals true.