Moin, wer kann mir erklären, was diese Ausschnitte aus der normalen Go() Funktion machen

1.) uint32_t enc_count; //was das?
int tot_count = 0;


2.) enc_count=abs(distance)*10000L; //was wird hier denn
enc_count/=19363L; //genau berechnet ?


3.) Encoder_Set(0,0); //warum immer reset ? wozou ?



Hier nochmal die Go() Funktion:
Code:
void Go(int distance,int power)
{
   uint32_t enc_count;
   int tot_count = 0;
   int diff = 0;
   int l_speed = power, r_speed = power;
   
   // calculation tics/mm
   enc_count=abs(distance)*10000L;
   enc_count/=19363L;
   
   Encoder_Set(0,0);      // reset encoder

   MotorSpeed(l_speed,r_speed);
   if(distance<0) MotorDir(RWD,RWD);
   else MotorDir(FWD,FWD);
   while(tot_count<enc_count) {
      tot_count += encoder[LEFT];
      diff = encoder[LEFT] - encoder[RIGHT];
 //Programmanfang für geradeausfahren
   if (diff > 0) { //Links schneller als rechts   
         if ((l_speed > power) || (r_speed > 244)) l_speed -= 10;
         else r_speed += 10;
      }
      if (diff < 0) { //Rechts schneller als links
         if ((r_speed > power) || (l_speed > 244)) r_speed -= 10;
         else l_speed += 10;
      } 
//Programmanende für geradeausfahren 

   Encoder_Set(0,0);      // reset encoder
   MotorSpeed(l_speed,r_speed);
   
   Msleep(1);
   }
   MotorDir(BREAK,BREAK);
   Msleep(200);
}