Escrevendo uma função Void sem parâmetros no 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.

Amostra: Um exemplo de programa para um robô percorrer uma distância reta

A função a seguir permitirá que o robô avance para o codificadortotalEnc. Ele usa a configuração V5 Clawbot.

Esta funçãospinToPositionnão retornará até que o movimento seja concluído. Isso é chamado de ação “sincronizada” – determinada pelo último parâmetrotrue.

Sem usar uma função definida pelo usuário:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(100,0, por cento);
   LeftMotor.spinToPosition(500,0, graus, verdadeiro);


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

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(-100,0, porcentagem);
   LeftMotor.spinToPosition(-1000.0, c, verdadeiro);

   Brain.Screen.printAt(5.100, "segundos rev deg" );
   Brain.Screen.printAt(5.130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     LeftMotor.position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, ms);
}

A amostra pode dar o seguinte resultado:

segundos bruto rev deg
2,06 5445 3,12 1089

Observe que seu teste irá variar dentro de uma margem muito pequena nas casas decimais.

Com uma função definida pelo usuário:

O exemplo a seguir mostra como capturar um conjunto de operações em uma única chamada de “função” reutilizável.

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 cento);
   LeftMotor.spinToPosition(500,0, graus, verdadeiro);
   reportMotionValues();

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(-50,0, por cento);
   LeftMotor.spinToPosition(-500,0, graus, verdadeiro);
   reportMotionValues();

}

Aqui mostra a sequência do fluxo lógico da função chamadora main():

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

Last Updated: