לא מזמן, נשמה טובה שלחה לי שאלה שעלתה באחד הפורומים לגבי מקרה מוזר: פקודת delay של ארדואינו, שמוקמה בתוך פונקציית פסיקה (שהוגדרה באמצעות הפקודה attachInterrupt), רצה מהר מדי – ליתר דיוק, היא סיימה את פעולתה בערך ב-1/200 מהזמן הצפוי. הסתבר שכמה מהמגיבים בפורום השיבו, ובצדק, שמלכתחילה אסור לשים delay בתוך פונקציית פסיקה, ואף הפנו לתיעוד הרשמי של ארדואינו, שבו נכתב ש-delay לא תעבוד כלל במצב כזה. אבל עובדה שמשהו כן עבד, רק לא בקצב הנכון. אז מה באמת קרה שם?
ארכיון הקטגוריה: באגים
כל שמי מיסיסיפי
אנקדוטה מרתקת – או מזעזעת, תלוי איך מסתכלים על זה – מימי הפיתוח של מעבורת החלל, שמדגימה איך אפילו המומחה הכי גדול יכול לחולל פאשלה נוראית בגלל חוסר תשומת לב לפרט אחד קטן.
החיישן שנרדם בשמירה
רק בגלל הלוח: PCB ל-ATmega4809
ארכיטקטורת AVR (לפחות ב-8 ביט) מקבלת כיוון חדש, ונכון להיום ה-ATmega4809 הוא הנציג הבולט והמדובר ביותר של הכיוון הזה. אז השגתי כמה מיקרו-בקרים וניסיתי לתכנן להם PCB ייעודי, למרות לחץ זמן ועבודה. הנה מה שקרה בעקבות כך.
דע את החומרה
ארדואינו: סוד האתחול הנעלם
טלאי על הבאג: הסכנה בכשלים שקטים
האם מנגנונים להגנה מפני שינויים לא רצויים בהגדרות המערכת הם דבר טוב, או שאולי הם מסוכנים יותר מאשר הם מביאים תועלת? נושא עקרוני בכתיבת תוכנה למיקרו-בקרים, שעלה בעקבות למידה של הגדרות השעונים ב-ATtiny החדשים – נושא מעניין למדי כשלעצמו.

ראש בראש: מיהו קיט הרובוט הכי גרוע בעולם?
התו שכמעט חיסל את התוכנה שלי
לפני שנתיים ומשהו כתבתי תוכנת Desktop כתחליף משוכלל לסריאל מוניטור המוגבל-מאוד של ארדואינו. מאז השתמשתי בה לעתים קרובות, עד שבאג מסתורי צץ משום מקום ואיים להרוס את כל העבודה שעשיתי. הנה הסיפור על זיהוי הבעיה ועל הפתרון הלא-פשוט.