Scrittura di una funzione nulla senza parametri in 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.

Esempio: un programma di esempio per un robot che percorre una distanza rettilinea

La seguente funzione consentirà al robot di funzionare in avanti pertotalEncencoder. Utilizza la configurazione V5 Clawbot.

Questa funzionespinToPositionnon tornerà fino al completamento del movimento. Questa è chiamata azione “sincronizzata” – determinata dall'ultimo parametrotrue.

Senza utilizzare una funzione definita dall'utente:

int main() {
   vexcodeInit();  

   MotoreSinistro.resetPosizione ();
   LeftMotor.setVelocity(100,0, percentuale);
   LeftMotor.spinToPosition(500.0, gradi, vero);


   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)); 
     attesa(1000, msec);

   MotoreSinistro.resetPosizione ();
   LeftMotor.setVelocity(-100,0, percentuale);
   MotoreSinistro.spinToPosition(-1000.0, c, vero);

   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)); 
     attesa(1000, msec);
}

Il campione può dare il seguente risultato:

secondi grezzi rev deg
2,06 5445 3,12 1089

Tieni presente che il tuo test varierà entro un margine molto piccolo nelle cifre decimali.

Con una funzione definita dall'utente:

L'esempio seguente mostra come acquisire un insieme di operazioni in un'unica chiamata di "funzione" riutilizzabile.

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.setVelocity(50,0, percentuale);
   LeftMotor.spinToPosition(500.0, gradi, vero);
   reportValoriMovimento();

   MotoreSinistro.resetPosizione ();
   LeftMotor.setVelocity(-50,0, percentuale);
   LeftMotor.spinToPosition(-500.0, gradi, vero);
   reportValoriMovimento();

}

Qui mostra la sequenza del flusso logico dalla funzione chiamante main():

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

Last Updated: