Menulis Fungsi Void tanpa Parameter di 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.

Contoh: Sebuah contoh program untuk robot yang bergerak lurus dalam jarak tertentu.

Fungsi berikut akan memungkinkan robot untuk bergerak maju denganencoder. Ia menggunakan konfigurasi V5 Clawbot.

FungsispinToPositionini tidak akan kembali hingga pergerakan selesai. Ini disebut tindakan “tersinkronisasi” – ditentukan oleh parameter terakhirbenar.

Tanpa menggunakan fungsi yang ditentukan pengguna:

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);
}

Sampel tersebut mungkin memberikan hasil sebagai berikut:

detik mentah putaran derajat
2.06 5445 3.12 1089

Perhatikan bahwa pengujian Anda akan bervariasi dalam margin yang sangat kecil pada tempat desimal.

Dengan fungsi yang ditentukan pengguna:

Contoh berikut menunjukkan cara menangkap serangkaian operasi menjadi satu panggilan “fungsi” yang dapat digunakan kembali.

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();

}

Video di bawah ini menunjukkan bagaimana urutan logika mengalir dari fungsi pemanggil main():

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

Last Updated: