Περιγραφή
Διακόπτει την εκτέλεση του προγράμματος για το χρονικό διάστημα (σε μικρά του δευτερολέπτου) που καθορίζεται ως παράμετρος. Γνωρίζουμε ότι υπάρχουν 1.000 μικρά του δευτερολέπτου σε ένα χιλιοστό του δευτερολέπτου και 1.000.000 μικρά του δευτερολέπτου σε ένα δευτερόλεπτο.
Επί του παρόντος, η μεγαλύτερη τιμή που θα παραγάγει μια ακριβής καθυστέρηση είναι η 16383. Αυτό θα μπορούσε να αλλάξει σε μελλοντικές εκδόσεις του Arduino. Αντί αυτού, για καθυστερήσεις μεγαλύτερες από μερικές χιλιάδες των μικρών του δευτερολέπτου, θα πρέπει να χρησιμοποιήσετε την delay().
Σύνταξη
delayMicroseconds(us)
Παράμετροι
us: ο αριθμός των μικρών του δευτερολέπτου της διακοπής (ανυπόγραφος ακέραιος).
Επιστρέφει
Τίποτα
Παράδειγμα
int outPin = 8; // digital pin 8
void setup()
{
pinMode(outPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(50); // pauses for 50 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(50); // pauses for 50 microseconds
}
Το παραπάνω παράδειγμα ρυθμίζει τον ακροδέκτη νούμερο 8 να λειτουργεί ως ένας ακροδέκτης εξόδου. Έτσι στέλνει ένα σύνολο παλμών περίπου μιας περιόδου των 100 μικρών του δευτερολέπτου. Αυτή η προσέγγιση οφείλεται στην εκτέλεση των άλλων εντολών του κώδικα.
Περιορισμοί και γνωστά ζητήματα
Αυτή η συνάρτηση λειτουργεί με μεγάλη ακρίβεια στο φάσμα των 3 μικρών του δευτερολέπτου και άνω. Δεν μπορούμε να σας διαβεβαιώσουμε ότι η delayMicroseconds() θα εκτελείται επακριβώς και για τους μικρότερους χρόνους καθυστέρησης.
Από την έκδοση 0018 του Arduino, η συνάρτηση delayMicroseconds() δεν απενεργοποιεί πλέον τις διακοπές.
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
