Void-funktion kirjoittaminen ilman parametreja VEXcode Pro V5:ssä

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.

Esimerkki: Esimerkkiohjelma robotin suoran matkan kulkemiseksi

Seuraava funktio sallii robotin käydä eteenpäintotalEnc jaenkooderin arvolla. Se käyttää V5 Clawbot -kokoonpanoa.

TämäspinToPosition-funktio ei palauta arvoa ennen kuin liike on valmis. Tätä kutsutaan ”synkronoiduksi” toiminnoksi – sen määrittää viimeinen parametritrue.

Ilman käyttäjän määrittämää funktiota:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100.0, prosenttia);
   LeftMotor.spinToPosition(500.0, astetta, true);


   Brain.Screen.printAt(5,30, "sekuntia kierrosluku astetta" );
   Brain.Screen.printAt(5,60, "%.2f: %8.2f %8.2f", 
     Brain.Timer.value(), 
     LeftMotor.position(kierrosluku), 
     LeftMotor.position(astetta)); 
     wait(1000, millisekuntia);

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

   Brain.Screen.printAt(5,100, "sekuntia kierrosluku astetta" );
   Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     LeftMotor.position(kierrosluku), 
     LeftMotor.position(astetta)); 
     wait(1000, millisekuntia);
}

Näyte voi antaa seuraavan tuloksen:

sekuntia raaka kierrosluku aste
2,06 5445 3,12 1089

Huomaa, että testisi vaihtelee hyvin pienen marginaalin sisällä desimaaleissa.

Käyttäjän määrittämän funktion avulla:

Seuraava esimerkki näyttää kuinka kaapata joukko toimintoja yhdeksi uudelleenkäytettäväksi "funktiokutsuksi".

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, prosenttia);
   LeftMotor.spinToPosition(500.0, astetta, true);
   reportMotionValues();

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(-50.0, prosenttia);
   LeftMotor.spinToPosition(-500.0, astetta, true);
   reportMotionValues();

}

Alla oleva video näyttää, miten kutsujafunktion main() logiikka etenee:

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

Last Updated: