Βίντεο: Game Over for the Climate? 2024
Ο βρόχος PBASIC FOR θα κάνει το BASIC Stamp στο ηλεκτρονικό σας έργο να εκτελέσει έναν βρόχο αρκετές φορές. Είναι επίσης ένα μεγάλο εργαλείο προγραμματισμού για την εκτέλεση μιας ενέργειας σε πολλαπλούς ακροδέκτες I / O. Έτσι, ένας βρόχος FOR είναι ο ιδανικός τρόπος για την εφαρμογή ενός προγράμματος LED Flasher. Η βασική δομή ενός βρόχου FOR φαίνεται ως εξής:
ΓΙΑ
μετρητής
= αρχική τιμή TO NEXT Ακολουθεί ένα παράδειγμα που αναβοσβήνει το LED στην ακίδα 0 δέκα φορές:X VAR BYTE ΓΙΑ X = 1 έως 10 HIGH 0 PAUSE 500 LOW 0 PAUSE 500 NEXT Σε αυτό το παράδειγμα, ο βρόχος εκτελείται δέκα φορές. Η τιμή της μεταβλητής Χ αυξάνεται κατά 1 κάθε φορά μέσω του βρόχου.
Στο προηγούμενο παράδειγμα, το πρόγραμμα δεν χρησιμοποίησε στην πραγματικότητα την αντίθετη μεταβλητή. Αυτό είναι κοινό σε βρόχους FOR; μερικές φορές ο μόνος σκοπός της μεταβλητής μετρητή είναι να ελέγξει πόσες φορές εκτελείται ο βρόχος. Αλλά μπορείτε να χρησιμοποιήσετε την μεταβλητή μεταβλητή εντός του βρόχου. Για παράδειγμα, εδώ είναι ένας βρόχος που κάνει κάθε pin I / O στο Stamp HIGH για ένα δέκατο του δευτερολέπτου:
IO_Pin VAR BYTE ΓΙΑ IO_PIN = 0 TO 15 HIGH IO_PIN PAUSE 100 LOW IO_PIN NEXT
Κανονικά, η μεταβλητή μετρητή αυξάνεται κατά ένα σε κάθε πέρασμα μέσω του βρόχου. Μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί STEP για να καθορίσετε μια διαφορετική τιμή βήμα εάν θέλετε. Όταν χρησιμοποιείτε τη λέξη STEP, η βασική δομή της εντολής FOR φαίνεται ως εξής:
ΓΙΑ
μετρητής=
αρχική τιμή
TO τελική τιμή < βήμα-τιμή Δηλώσεις … NEXT Για παράδειγμα, θα μπορούσατε να αναβοσβήνετε τις λυχνίες LED μόνο σε ακίδες με ακρίβεια όπως παρακάτω:Led VAR Byte FOR LED = 0 έως 10 ΒΗΜΑ 2 ΥΨΗΛΗ Led PAUSE 100 LOW Led NEXT Ένα άλλο ενδιαφέρον χαρακτηριστικό των βρόχων FOR είναι ότι μπορούν να μετρήσουν προς τα πίσω. Το μόνο που πρέπει να κάνετε είναι να καθορίσετε μια τιμή εκκίνησης μεγαλύτερη από την τελική τιμή, όπως αυτή: Led VAR Byte FOR LED = 10 TO 0 ΒΗΜΑ 2 HIGH Led PAUSE 100 LOW Led ΕΠΟΜΕΝΟ
Αυτή η έκδοση του LED Flasher το πρόγραμμα χρησιμοποιεί ένα ζεύγος FOR βρόχων για να αναβοσβήνει πρώτα τα LED σε μία κατεύθυνση και στη συνέχεια προς την αντίθετη κατεύθυνση. Ο πρώτος βρόχος FOR αναβοσβήνει τα LED στις ακίδες 0, 2, 4, 6 και 8. Στη συνέχεια, ο δεύτερος βρόχος FOR αναβοσβήνει τις λυχνίες LED στις ακίδες 10, 8, 6, 4 και 2. Και οι δύο βρόχοι FOR περιέχονται μέσα σε DO βρόχο που κρατά τα LEDs αναπηδώντας από δω και πίσω επ 'αόριστον.
Όταν οι βρόχοι FOR είναι ενωμένοι, ο εσωτερικός βρόχος (οι κύκλοι) ολοκληρώνουν ολόκληρο τον κύκλο τους κάθε φορά μέσω του εξωτερικού βρόχου. Εάν ένας βρόχος FOR που επαναλαμβάνεται δέκα φορές τοποθετείται μέσα σε έναν εξωτερικό βρόχο που επαναλαμβάνεται δέκα φορές, οι δηλώσεις εντός του εσωτερικού βρόχου θα εκτελούνται συνολικά 100 φορές - δέκα φορές για καθεμία από τις δέκα επαναλήψεις του εξωτερικού βρόχου.
Αυτός χρησιμοποιεί έναν εξωτερικό βρόχο FOR που μεταβάλλει τον χρόνο καθυστέρησης για τις εντολές PAUSE. Το αποτέλεσμα είναι ότι οι λυχνίες LED σαρώνουν πολύ γρήγορα στην αρχή, αλλά επιβραδύνουν κατά 10 ms σε κάθε επανάληψη του εξωτερικού βρόχου έως ότου η καθυστέρηση φθάσει το ένα δευτερόλεπτο ανά LED. Το πρόγραμμα αυτό αναβοσβήνει τα LED που συνδέονται με τις ακίδες 0, 2, 4, 6, 8 και 10 'εμπρός και πίσω, όπως τα μάτια του Cylon. "Αυτή η έκδοση του προγράμματος
« Πρόγραμμα LED Flasher' Doug Lowe ' χρησιμοποιεί βρόχους FOR-NEXT με ένθετα για να επιβραδύνει την 'σάρωση των LED. '{$ STAMP BS2}' {$ PBASIC 2. 5} Λυχνία LED VAR Ταχύτητα byte VAR Για ταχύτητα = 10 έως 1000 ΒΗΜΑ 10 ΓΙΑ Led = 0 έως 8 ΒΗΜΑ 2 ΥΨΗΛΗ ΛΕΙΤΟΥΡΓΙΑ ΠΑΥΣΗΣ Ταχύτητα ΧΑΜΗΛΗ ΕΝΕΡΓΕΙΑ ΕΝΑΡΞΗ ΓΙΑ LED = 10 έως 2 ΒΗΜΑ 2 ΥΨΗΛΗ ΛΕΙΤΟΥΡΓΙΑ ΠΑΥΣΗΣ Ταχύτητα ΧΑΜΗΛΗ ΛΕΙΤΟΥΡΓΙΑ ΕΠΟΜΕΝΗ ΕΠΟΜΕΝΗ