Написання функції Void без параметрів у 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.

Приклад: Приклад програми для робота, який має пройти пряму відстань

Наступна функція дозволить роботу рухатися вперед протягомtotalEncенкодера. Він використовує конфігурацію V5 Clawbot.

Ця функціяspinToPositionне поверне значення, доки рух не буде завершено. Це називається «синхронізованою» дією – визначається останнім параметромtrue.

Без використання користувацької функції:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(100.0, відсотки);
   LeftMotor.spinToPosition(500.0, град, true);


   Brain.Screen.printAt(5,30, "сек. обертів град");
   Brain.Screen.printAt(5,60, "%.2f", %8.2fBrain.Timer.value(), 
     LeftMotor.position(обертів), 
     LeftMotor.position(градуси)); 
     wait(1000, мс);

   LeftMotor.resetPosition %8.2f ) 

   LeftMotor.setVelocity(-100.0, відсотки);
   LeftMotor.spinToPosition(-1000.0, c, true);

   Brain.Screen.printAt(5,100, "сек. обертів град");
   Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     LeftMotor.position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, мс);
}

Зразок може дати наступний результат:

сек. необроблені оберти град.
2.06 5445 3.12 1089

Зверніть увагу, що ваш тест буде відрізнятися в межах дуже невеликого відступу в знаках після коми.

З функцією, визначеною користувачем:

У наведеному нижче прикладі показано, як записати набір операцій в один багаторазовий виклик функції.

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, відсотків);
   LeftMotor.spinToPosition(500.0, градусів, true);
   reportMotionValues();

   LeftMotor.resetPosition();
   LeftMotor.setVelocity(-50.0, відсотків);
   LeftMotor.spinToPosition(-500.0, градусів, true);
   reportMotionValues();

}

У відео нижче показано, як послідовність логіки випливає з функції-викликача main():

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

Last Updated: