Μετρών την ώραν#
Εισαγωγή#
Η κλάση timer χρησιμοποιείται για να κρατάει τον χρόνο και να αλληλεπιδρά με έναν χρονοδιακόπτη ανεξάρτητο από τον χρονοδιακόπτη του εγκεφάλου.
Κατασκευαστής κλάσης#
timer();
Καταστροφέας κλάσης#
Καταστρέφει το αντικείμενο χρονοδιακόπτη timer και απελευθερώνει τους σχετικούς πόρους.
~timer();
Παράμετροι#
Αυτός ο κατασκευαστής δεν δέχεται καμία παράμετρο.
Παραδείγματα#
// Create a timer instance
timer myTimer = timer();
Συναρτήσεις Μελών#
Η κλάση timer περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:
reset— Resets the timer to zero.value— Returns the elapsed time since the timer started.event— Καλεί μια συνάρτηση μετά από έναν καθορισμένο αριθμό χιλιοστών του δευτερολέπτου, με προαιρετικά ορίσματα.
Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους timer , πρέπει να δημιουργηθεί μια παρουσία timer , όπως φαίνεται παρακάτω:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the Brain to use Brain.Timer
brain Brain = brain();
reset#
Ρυθμίζει το χρονόμετρο στο μηδέν.
Available Functionsvoid reset();
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return ValuesΑυτή η συνάρτηση δεν επιστρέφει τιμή.
Exampleswhile (true) {
// Clear the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
myTimer.reset();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
wait(50, msec);
}
value#
Επιστρέφει την τρέχουσα τιμή του χρονοδιακόπτη.
Available Functionsdouble value();
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return ValuesΈνα διπλό που αντιπροσωπεύει τον χρόνο που πέρασε σε δευτερόλεπτα.
NotesΤο χρονόμετρο αρχίζει να μετράει όταν κατασκευαστεί.
Calling
resetresets the timer value to zero.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
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(); timer myTimer = timer(); // Call turnOrange after 2 seconds myTimer.event(turnOrange, 2000); }