Escribir una función vacía 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.

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

La siguiente función permitirá que el robot avance hacia el  codificador totalEnc. Utiliza la configuración V5 Clawbot.

Esta  función spinToPosition no volverá hasta que se complete el movimiento. Esto se llama acción "sincronizada", determinada por el último parámetro true.

Sin usar una función definida por el usuario:

int main() {
   vexcodeInit ();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity (100.0, percent);
   LeftMotor.spinToPosition (500.0, deg, true);


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

   ; LeftMotor.resetPosition ()
   ; LeftMotor.setVelocity (-100.0, percent)
   ; LeftMotor.spinToPosition (-1000.0, c, true)

   ; Brain.Screen.printAt (5,100, "secs    rev     deg" )
   ; Brain.Screen.printAt (5,130, "%%.2f: %8.2f %8.2f" 
     , Brain.Timer.value ()
     , LeftMotor.position (rev) 
     , LeftMotor.position (deg); 
     wait(1000, msec);
}

La muestra puede dar el siguiente resultado:

seg. rev. bruta grado
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 sola 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, percent);
   LeftMotor.spinToPosition (500.0, deg, true);
   reportMotionValues ();

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity (-50.0, percent);
   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: