![Arduino - Dövri fasilə: 4 addım Arduino - Dövri fasilə: 4 addım](https://i.howwhatproduce.com/images/006/image-17545-9-j.webp)
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
![Arduino - Dövri fasilə Arduino - Dövri fasilə](https://i.howwhatproduce.com/images/006/image-17545-10-j.webp)
Bu Təlimat, Arduino proqramlarında vaxt təyin etmək üçün dövri bir fasilə istifadə etməkdir. Bu, Arduinonun daha çox şey edə biləcəyini bilən, lakin bunun necə baş verəcəyini tam bilməyən yeni başlayan bir Arduino proqramçısı üçün bir addımdır.
Bir performans problemi varsa, bir və ya daha çox delay () funksiyasından istifadə etdiyinizi düşünürəm. Hiylə gecikmə () funksiyalarından qurtulmaq və kəsilməni əvəz etməkdir. Delay () funksiyası, Arduino'yu gecikmənin () tamamlanmasını gözləyərkən heç bir şey etməməyə məcbur edir. Bir fasilə istifadə etmək, gecikmənin bitməsini gözləyərkən proqramınızın başqa işlər görməsinə imkan verir. Gecikmə () istifadə edərkən başqa şeylər üçün istifadə oluna biləcək çoxlu istifadə olunmamış ölü vaxt var. Bir fasilənin istifadəsi bu problemi həll edir.
Addım 1: İşi kəsin
1. Proqramınıza kəsmə işləyicisini əlavə edin. Yalnız quraşdırma () yuxarıdakı bir yerə kopyalayın və yapışdırın;
const imzasız uzun TIMER0_COUNT = 500; // 500 msn zamanlayıcı aralığı
// TIMER0 interrupt handler uçucu bool zamanı = yalan; ISR (TIMER0_COMPA_vect) {statik işarəsiz uzun say = 0; əgər (++ say> TIMER0_COUNT) {count = 0; vaxt = doğru; // vaxt hər TIMER0_COUNT ms} doğru olaraq təyin olunur // (əsas rutində vaxtın silinməsi lazımdır)}
Addım 2: Dövri Zaman Aralığını təyin edin
2. Vaxt aralığını təyin edin. Bu qayda hər ~ 1 msn -də atəşə tutulan TIMER0 ara verməsinə geri dönür.
Sizin "intervalınız" emal etmək üçün TIMER0 kəsilmələrinin sayıdır. Hər interval ~ 1 msn -dir, buna görə aralığınızı aktivləşdirməzdən əvvəl neçə TIMER0 fasiləsinin sayılacağını həqiqətən təyin edirsiniz. IOW, TIMER0_COUNT dəyişənini gözləmək istədiyiniz qədər milisaniyəyə təyin edin. Məsələn, saniyənin yarısı üçün 500 istifadə edin. 3000 saniyəni 3 saniyə istifadə edin.
Addım 3: Başlatmanı kəsin
3. "TIMER0 başlatma" kodunu setup () metodunuza əlavə edin. Yenə də kopyalayıb yapışdırın ().
// *** TIMER0 başlanğıc ***
cli (); // bütün fasilələri söndür TIMSK0 = 0; // aşağı sarsıntı üçün timer0 söndürün OCR0A = 0xBB; // ixtiyari kəsilmə sayı TIMSK0 | = _BV (OCIE0A); // donuz geri inter sei (); // növbəni kəsin
Addım 4: Kodunuzu hara əlavə etməlisiniz
4. "time check" kodunu loop () metodunuza əlavə edin. Kopyalayın və döngəyə yapışdırın ().
əgər (vaxt) {
vaxt = yalan; // burada bir şey et}
"Zaman = yalan;" xətti vacibdir. Bu sətir olmasaydı, proqram hər dəfə loop () icra etdikdə "burada bir şey et" sətirləri icra olunur.
Əlbəttə ki, "burada bir şey et" xəttində öz fəaliyyətinizi əvəz edirsiniz. Bir az mətn çap etmək və ya LED -i yandırmaqla başlayın.
Bitirdin!
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
![Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım](https://i.howwhatproduce.com/images/001/image-458-22-j.webp)
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
![Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım](https://i.howwhatproduce.com/images/007/image-19534-j.webp)
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Arduino istifadə edərək RC İzlənən Robot - Addım -addım: 3 Addım
![Arduino istifadə edərək RC İzlənən Robot - Addım -addım: 3 Addım Arduino istifadə edərək RC İzlənən Robot - Addım -addım: 3 Addım](https://i.howwhatproduce.com/images/010/image-28275-j.webp)
Arduino istifadə edərək RC İzlənən Robot - Addım -addım: Hey uşaqlar, BangGood -dan başqa bir sərin Robot şassisi ilə geri döndüm. Ümid edirik ki, əvvəlki layihələrimizdən keçdiniz - Spinel Crux V1 - Jestlə İdarə Edilən Robot, Spinel Crux L2 - Arduino Robot Silahlı və Badland Brawlu Robotu Seçin və Yerləşdirin
DIY Arduino Robotik Qol, Addım -addım: 9 addım
![DIY Arduino Robotik Qol, Addım -addım: 9 addım DIY Arduino Robotik Qol, Addım -addım: 9 addım](https://i.howwhatproduce.com/images/002/image-3800-47-j.webp)
DIY Arduino Robotik Kol, Addım -addım: Bu dərslik sizə bir robot qolu necə qurmağı öyrədir
Kompüterinizin ekranında bir az fasilə verin: 6 addım
![Kompüterinizin ekranında bir az fasilə verin: 6 addım Kompüterinizin ekranında bir az fasilə verin: 6 addım](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10960881-make-a-time-lapse-of-your-computer-screen-6-steps-j.webp)
Kompüter Ekranınızın Sürətini Düzəldin: Sadə proqramlardan istifadə edərək kompüterinizin ekranında bir fasilə yarada bilərsiniz. Tövsiyə etdiyim CamStudio istifadə etmənin səbəbləriSadə SourceVista və ya XPWorks proqramlarını demək olar ki, hər hansı bir video kodek ilə açın Videoları birlikdə birləşdirmək üçün Windows Movie istifadə edirəm. İstehsalçı