Servomotor sweep mit gleichzeitgem DC-Motor beschleunigen

Du kannst nicht schreiben:

void motor(int cV, int gV, int waituntil)  {
         while (millis() <= waituntil) {

Da millis() einen Wert gibt, der von 0 raufzählt.
Du mußt den Anfangswert von millis() lesen und dann die Zeit dazuzählen wie Du es bei movetime machst.

void motor(int cV, int gV, int waituntil)  {
         waituntil=Millis()+waituntil;
         while (millis() <= waituntil) {

Außerdem kann analogrwrite Werte von 0 bis 255 entgegennehmen wobei 255 Höchstgeschwindigkeit ist.

Grüße Uwe