مؤقت#
مقدمة#
يتم اشتقاق فئة المؤقت timer من الفئة الأساسية brain وتوفر وظائف لقياس الوقت المنقضي، مما يسمح لك بتتبع المدد الزمنية وجدولة الأحداث القائمة على الوقت داخل برنامج VEX EXP.
وصول#
Brain.Timer
ملحوظات#
Brain.Timerهو مثيل للفئةtimerويوفر نفس الوظائف.
مثال#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the EXP Brain
brain Brain = brain();
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
الدوال الأعضاء#
تتضمن فئة المؤقت timer:
clear— يعيد ضبط المؤقت إلى الصفر.time— تُرجع الوقت المنقضي منذ بدء المؤقت.event— يستدعي دالة بعد عدد محدد من المللي ثانية، مع وسائط اختيارية.
قبل استدعاء أي من وظائف الأعضاء timer ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:
// Create the EXP Brain
brain Brain = brain();
clear#
يعيد ضبط قيمة المؤقت الحالية إلى الصفر. بعد ذلك، يبدأ المؤقت العد التصاعدي من الصفر مرة أخرى على الفور.
Available Functionsvoid clear();
لا تقبل هذه الدالة أي معلمات.
Return Valuesهذه الدالة لا تُرجع قيمة.
Exampleswhile (true) {
// Reset the timer every time the check button is pressed
if (Brain.buttonCheck.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
wait(50, msec);
}
time#
يُعيد القيمة الحالية للمؤقت.
Available Functions1 — يُعيد الوقت المنقضي بالمللي ثانية.
uint32_t time() const;
Parameters2 — يُرجع الوقت المنقضي بوحدات الوقت المحددة.
double time( timeUnits units ) const;
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
The units used to return the elapsed time:
|
الدالة (1) التي لا تحتوي على معلمات تُرجع
uint32_tيمثل الوقت المنقضي بالمللي ثانية.الدالة التي تحتوي على معامل timeUnits
timeUnits) تُرجع قيمةdoubleتمثل الوقت المنقضي بالوحدات المحددة.
يبدأ المؤقت بالعد عند بدء المشروع.
يؤدي استدعاء
clearإلى إعادة ضبط قيمة المؤقت إلى الصفر.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
event#
يسجل دالة رد نداء ليتم تنفيذها بعد تأخير محدد.
Available Functions1 — يسجل دالة رد نداء ليتم تشغيلها بعد تأخير محدد ويمرر قيمة محددة من قبل المستخدم إلى دالة رد النداء.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — يسجل دالة رد نداء ليتم تشغيلها بعد تأخير محدد.
static void event( void (*callback)(void), uint32_t value );
المعلمة |
يكتب |
وصف |
|---|---|---|
|
|
دالة سيتم استدعاؤها بعد التأخير المحدد وتستقبل وسيطًا محددًا من قبل المستخدم. |
|
|
دالة سيتم استدعاؤها بعد التأخير المحدد. |
|
|
التأخير، بالمللي ثانية، قبل تنفيذ دالة الاستدعاء. |
هذه الدالة لا تُرجع قيمة.
Notesتقوم هذه الوظيفة بجدولة عملية رد نداء لمرة واحدة؛ فهي لا تتكرر تلقائيًا.
يجب أن تُرجع دالة الاستدعاء القيمة
void.قد يتم جدولة عدة فعاليات في نفس الوقت.
عرّف الدالة (خارج النطاق
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }قم بتسجيل الدالة داخل
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Call turnOrange after 2 seconds Brain.Timer.event(turnOrange, 2000); }