Escribir una función nula sin parámetros en VEXcode Pro V5

The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.

VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.

Ejemplo: un programa de muestra para que un robot recorra una distancia recta

La siguiente función permitirá que el robot corra hacia adelante durantetotalEnccodificador. Utiliza la configuración V5 Clawbot.

EstespinToPositionla función no regresará hasta que se complete el movimiento. Esto se denomina acción "sincronizada", determinada por el último parámetro verdadero.

Sin utilizar una función definida por el usuario:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100.0, por ciento);
   LeftMotor.spinToPosition(500.0, grados, verdadero);


   Brain.Screen.printAt(5,30, "segs rev deg");
   Brain.Screen.printAt(5,60, "%.2f: %8.2f %8.2f", 
     Brain.Timer.value(), 
     LeftMotor.position(rev), 
     LeftMotor.position(deg)); 
     esperar(1000, mseg);

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(-100.0, porcentaje);
   LeftMotor.spinToPosition(-1000.0, c, verdadero);

   Brain.Screen.printAt(5,100, "segs rev deg");
   Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     Motor izquierdo .position(rev), 
     LeftMotor.position(deg)); 
     esperar(1000, mseg);
}

La muestra puede dar el siguiente resultado:

segs raw rev deg
2,06 5445 3,12 1089

Tenga en cuenta que su prueba variará dentro de un margen muy pequeño en los lugares decimales.

Con una función definida por el usuario:

El siguiente ejemplo muestra cómo capturar un conjunto de operaciones en una única llamada de "función" reutilizable.

void reportMotionValues () {

  Brain.Screen.printAt (5, 60, "%.2f: %8.2f %8.2f",
    Brain.Timer.value (), 
    LeftMotor.position (rev),
    LeftMotor.position (deg)); 
}


int main () {
   vexcodeInit ();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity (50.0, por ciento);
   LeftMotor.spinToPosition (500.0, deg, true);
   reportMotionValues ();

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity (-50.0, por ciento);
   LeftMotor.spinToPosition (-500.0, deg, true);
   reportMotionValues ();

}

Aquí se muestra la secuencia del flujo lógico de la función de llamada main():

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: