בתוך אחת מהפונקציות הצנועות של ארדואינו מסתתר if לא הגיוני. מה הוא עושה שם? מה יקרה (אם בכלל) אם ניפטר ממנו? הבדיקה של הנושא תיקח אותנו למסע בזמן עד שנת 1988.
ארכיון הקטגוריה: תוכנה
מי שמע על pulseInLong?
זה התחיל בתור פוסט כללי, על הדרך בה בחרתי להתמודד עם נושא הארדואינו בוויקי שאני כותב. תוך כדי העבודה עליו גיליתי את הפונקציה pulseInLong… ואז גיליתי את הבאג בה!
איי לאב יו, טרמינל
במסגרת החיפושים אחרי סביבת פיתוח טובה להדגמות על Raspberry Pi, עליתי על טריק ישן לשדרוג של פלט תוכניות ה-Console הפשוטות. היכונו לטיסה אל העבר הרחוק!
קול דממה דקה
יש הרבה דרכים לשדר מידע באמצעות הפעלה וכיבוי מתוזמנים של מחולל אות כזה או אחר. אבל כשהמערכת מופעלת בסוללות ואורך החיים שלהן הוא שיקול קריטי, ייתכן שהדרך הטובה ביותר היא דווקא לשמור על השקט.
PunyCam: מצלמה מבוססת סרבו ו-LDR
איך נראה העולם דרך עיניו של נגד תלוי-אור (LDR)? המצלמה PunyCam הלא-מרשימה שפיתחתי מספקת לנו את התשובה… בקצב איטי להחריד!
סיפורי אופטימיזציה: לעקוף ת'עז
בעבר הזכרתי את ה"עז" ש-Microchip דחפו לגרסה החינמית של הקומפיילר XC8, כדי לגרום לגרסה בתשלום להיראות טובה יותר. בפוסט זה אדגים איך אפשר, בעזרת קוד אסמבלי ובמגבלות מסוימות, להתגבר אפילו על המכשול המובנה הזה.
הלו פיק #3: ה-EEPROM
למיקרו-בקר הצנוע PIC12F675 יש זיכרון EEPROM בנפח 128 בייטים. כדי לכתוב או לקרוא מזיכרון זה, עלינו לבצע טקסי וודו מסתוריים. לשם מה צריך את ה-EEPROM, איך בדיוק נראים הטקסים האלה, ולמה הם חיוניים?
העברת מידע באמצעות סמן העכבר
האם ניתן להשתמש בקלט העכבר של המחשב האישי להעברה של נתונים בינאריים, ממערכת חומרה חיצונית אל תוכנה? ומה שחשוב לא פחות, האם ניתן לעשות זאת בלי להפריע יותר מדי לשימוש הרגיל בעכבר? מסתבר שבמגבלות מסוימות התשובה חיובית – ובפוסט הנוכחי אסביר איך עשיתי את זה.
(וידאו באנגלית)
אנרגיות חיוביות
בתכנון של מערכות Embedded אנחנו עובדים תמיד במסגרת אילוצי משאבים. לפעמים האילוצים האלה מכתיבים את הכדאיות של צורות מימוש שונות – והאופן שבו זה קורה לא תמיד מובן מאליו . בפוסט זה אציג חישובים שערכתי כדי לבדוק, על הנייר, את צריכת החשמל של שתי חלופות במערכת שבה הפרמטר הזה חשוב במיוחד.
המחיר של הנקודה
כידוע, שימוש במשתנים בעלי נקודה עשרונית (floating-point) אינו מומלץ במיקרו-בקרים טיפוסיים, מכיוון שכל פעולה שנעשית איתם גוזלת זמן רב בהרבה מפעולה מקבילה על מספרים שלמים (integer) . מה שקצת פחות ידוע הוא שיש לעבודה איתם גם מחיר כבד בדרישות הזיכרון. הנה דוגמה מעשית קטנה.