תוכן עניינים:
וִידֵאוֹ: Arduino - הפרעה תקופתית: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מדריך זה עוסק בשימוש בהפסקה תקופתית לתזמון בתוכניות Arduino. זהו שלב עבור מתכנת ארדואינו מתחיל, שיודע שהארדואינו יכול לעשות יותר, אבל לא ממש יודע איך לגרום לזה לקרות.
אם יש בעיה בביצועים אני מניח שאתה משתמש בפונקציית השהיה אחת (או יותר). הטריק הוא להיפטר מפונקציית השהיית () ולהחליף הפרעה. הפונקציה עיכוב () מאלצת את הארדואינו לא לעשות דבר בזמן ההמתנה להשלמת העיכוב (). שימוש בפסיקה מאפשר לתוכנית שלך לעשות דברים אחרים בזמן ההמתנה לסיום העיכוב. בדרך כלל יש כמות עצומה של זמן מת שאינו בשימוש שיכול לשמש לדברים אחרים בעת שימוש בעיכוב (). שימוש בפסיקה פותר בעיה זו.
שלב 1: הפסק מטפל
1. הוסף את מטפל ההפרעה לתוכנית שלך. פשוט העתק והדבק במקום כלשהו מעל ההתקנה ();
const לא חתום ארוך TIMER0_COUNT = 500; // מרווח טיימר של 500 אלפיות השנייה
// TIMER0 interrupt handler נדיף זמן בוול = false; ISR (TIMER0_COMPA_vect) {ספירה ארוכה חתומה סטטית = 0; אם (++ ספירה> TIMER0_COUNT) {count = 0; זמן = נכון; // הזמן מוגדר כ- true כל TIMER0_COUNT ms} // (צריך לנקות את הזמן בשגרה הראשית)}
שלב 2: הגדר מרווח זמן תקופתי
2. הגדר את מרווח הזמן. החזר השגרתי הזה חוזר לעצמו על מפסק TIMER0, שעומד לירות כל ~ 1 שניות.
ה"מרווח "שלך הוא מספר ההפסקות TIMER0 לעיבוד. כל מרווח הוא ~ 1 שניות, כך שאתה באמת קובע כמה TIMER0 מפסיקים לספור לפני הפעלת המרווח. IOW, הגדר את המשתנה TIMER0_COUNT לכל כמה מילי שניות שתרצה לחכות. לדוגמה, השתמש ב- 500 לחצי שנייה. השתמש ב- 3000 למשך 3 שניות.
שלב 3: הפסק אתחול
3. הוסף את קוד "אתחול TIMER0" לשיטת ההתקנה () שלך. שוב, פשוט העתק והדבק בהתקנה ().
// *** אתחול TIMER0 ***
cli (); // לכבות את כל ההפרעות TIMSK0 = 0; // לכבות את הטיימר 0 לרעוד נמוך OCR0A = 0xBB; // ספירת הפרעות שרירותית TIMSK0 | = _BV (OCIE0A); // חזיר בחזרה אל interrupt sei (); // הפעל שוב את ההפרעות
שלב 4: היכן להוסיף את הקוד שלך
4. הוסף את קוד "בדיקת הזמן" לשיטת הלולאה () שלך. העתק והדבק בלולאה ().
אם (זמן) {
time = false; // עשה משהו כאן}
ה- "time = false;" קו חשוב. ללא שורה זו השורה "עשה משהו כאן" תתבצע בכל פעם שהתוכנית מבצעת לולאה ().
כמובן שאתה מחליף פעילויות משלך בשורת "עשה משהו כאן". התחל בהדפסת טקסט כלשהו או בהבהב הנורית.
אתה סיימת!
מוּמלָץ:
כיצד לבצע אנטנת BiQuade כפולה 4G LTE שלבים פשוטים: 3 שלבים
כיצד להפוך אנטנת 4G LTE BiQuade כפולה לשלבים קלים: לרוב לא עמדתי בפני, אין לי עוצמת אות טובה לעבודות היום-יומיות שלי. לכן. אני מחפש ומנסה סוגים שונים של אנטנות אבל לא עובד. לאחר בזבוז זמן מצאתי אנטנה שאני מקווה לייצר ולבדוק, כי זה עקרון הבנייה לא
עיצוב משחק בקפיצה ב -5 שלבים: 5 שלבים
עיצוב משחק בקפיצה ב -5 שלבים: פליק הוא דרך פשוטה מאוד ליצור משחק, במיוחד משהו כמו פאזל, רומן חזותי או משחק הרפתקאות
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: 3 שלבים
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: במדריך זה אנו הולכים לבצע זיהוי פנים ב- Raspberry Pi 4 עם Shunya O/S באמצעות ספריית Shunyaface. Shunyaface היא ספריית זיהוי/זיהוי פנים. הפרויקט שואף להשיג את מהירות הזיהוי והזיהוי המהירה ביותר עם
מהדורת ליל כל הקדושים של Arduino - מסך קופץ זומבים (שלבים עם תמונות): 6 שלבים
מהדורת ליל כל הקדושים של Arduino - מסך פופ -אאוט של זומבים (צעדים עם תמונות): רוצה להפחיד את החברים שלך ולעשות רעש צורח בהלווין? או סתם רוצה לעשות מתיחה טובה? המסך הקופץ הזה של זומבים יכול לעשות זאת! במדריך זה אלמד אותך כיצד ליצור זומבים קופצים בקלות באמצעות Arduino. ה- HC-SR0
מזין דגים Arduino Uno ב 6 שלבים זולים וקלים !: 6 שלבים
מזין הדגים Arduino Uno ב -6 שלבים זולים וקלים !: כך שאולי יהיה צורך בקצת סיפור רקע לפרויקט זה. לאנשים עם דגים לחיות מחמד הייתה כנראה אותה בעיה כמוני: חופשות ושכחה. כל הזמן שכחתי להאכיל את הדגים שלי ותמיד הסתבכתי לעשות זאת לפני שהגיע ל