השתמשתי במספיק מוצרים עם מיקרו-בקרים משובצים וממשקי משתמש שאינם מגיבים כדי לדעת שהוא יכול ליצור או לשבור מוצר. אפילו עיכוב או עיכוב קל בין לחיצות הכפתור ועדכון התצוגה, או התעלמות מלחיצות או ספירה כפולה, יכולים להיות מתסכלים ביותר.
באילו דפוסי עיצוב ניתן להשתמש בכדי להתמודד עם קלט המשתמש (מכפתורים ) ועדכון תצוגות מבלי לגרום לבעיות אלה?
כרגע אני משתמש בסוג הבא של דפוס (זה פשוט עד למינימום):
#include <Bounce.h> #define GREEN_LED 6 // Pin for LED green # define BUTTON_PIN 15 // Pin for button - משתמש חיצוני למשוך כלפי מטה כל כך פעיל גבוה # להגדיר DISPLAY_REFRESH_INT 100 // כמה MS בין עדכוני תצוגה Bounce button = Bounce (BUTTON_PIN, 5); // כדי לאותת בין כפתור הקריאה לתצוגה updatebool ledState = false; // משמש כדי לעקוב אחר התצוגה האחרונה displayatelonglangupdate = 0; התקנת החלל () {pinMode (GREEN_LED, OUTPUT); pinMode (BUTTON_PIN, INPUT);} loop loop () {// קרא את מצב הלחצן if (button.update ()) {if (button.risingEdge ()) {ledState =! ledState; }} // עדכן את התצוגה מעת לעת אם (millis () - displayUpdate > DISPLAY_REFRESH_INT) {displayUpdate = millis (); digitalWrite (GREEN_LED, ledState); }}
אילו אפשרויות אחרות יש? האם כדאי להשתמש בהפסקות החלפת סיכה לקריאת כפתורים (אם איננו שוקלים חיי סוללה!).