הרע, הרע והמכוער: הקצאה דינמית במיקרו-בקרים

כאשר מתכנתים מיקרו-בקרים פשוטים, שגודל זיכרון ה-RAM שלהם נמדד בקילובייטים ספורים, הקצאה דינמית (תפיסה ושחרור של קטעי זיכרון בזמן ריצה) היא טכניקה בעייתית עם תועלת מפוקפקת. בפוסט זה אסביר בהרחבה למה.

להמשיך לקרוא הרע, הרע והמכוער: הקצאה דינמית במיקרו-בקרים

סיפורי אופטימיזציה: תמונות ממוזערות

פרויקט ארדואינו שעבדתי עליו לאחרונה כלל מסך מגע קטן, וכדי שהממשק יהיה אטרקטיבי החלטתי לשלב בו לחצנים עם עיצוב גרפי. גודל של לחצן נוח לתפעול, עבור המקרה הספציפי הזה, הוא בסביבות 36×36 פיקסלים; המסך עובד בסכמת צביעה שמצריכה 2 בייטים לפיקסל, ובסך הכל צריך כעשרה לחצנים, כלומר כ-26KB. איפה ואיך מאחסנים את המידע הזה באופן שיהיה גם נוח, גם מהיר לגישה וגם חסכוני ככל האפשר?

קוד עם המון נתונים ב-Arduino IDE
קוד עם המון נתונים ב-Arduino IDE

להמשיך לקרוא סיפורי אופטימיזציה: תמונות ממוזערות

איך לשאול שאלות

מנסה לעשות משהו בארדואינו וזה לא הולך? יש בעיה בארדואינו או בתכנות שלו? רוצה להבין משהו ספציפי באלקטרוניקה, לאתר מידע על מיקרו-בקר או על חיישן – בקיצור, יש לך שאלה לקהילת המייקרים? הנה שישה כללים חיוניים, שיגדילו מאד את הסיכוי לקבל תשובה מועילה (וגם ימנעו אי-הבנות, בזבוז זמן ועצבים).
להמשיך לקרוא איך לשאול שאלות

>9: קלט מספרי מהסריאל מוניטור

ה-Serial Monitor של סביבת הפיתוח של הארדואינו נועד לתת למפתחים כלי נוח ופשוט לתקשורת דו-סטרית עם המיקרו-בקר. כל עוד מדובר בפלט שמגיע מלוח הארדואינו, באמצעות פקודות כמו Serial.println, המוניטור ממלא את תפקידו היטב. הבעיות מתחילות כשהמשתמש מנסה לשלוח לארדואינו מידע מורכב שכולל שני תווים ומעלה. הדוגמה הקלאסית לכך היא מספר שיש בו יותר מספרה אחת, והנושא עולה לעתים מספיק קרובות כדי שאקדיש לו פוסט  אז איך עושים את זה?

להמשיך לקרוא >9: קלט מספרי מהסריאל מוניטור

הלו טייני #5: לאלף את הכלב

בפוסט זה נתחיל לדבר על מנגנון קטן ומרתק בתוך הטייני, שנקרא Watchdog ("כלב שמירה"), ושלמען הקיצור נקרא לו פשוט WD. ה-WD כולל טיימר עצמאי שמוקדש רק לו, בעל תדר קבוע של כ-128KHz, והוא מהווה את קו ההגנה האחרון של מערכת מבוססת מיקרו-בקר לפני כשל טוטאלי. מכיוון שהתפקיד שלו חשוב כל כך, הוסיפו לו כמה שכבות של הגנה מפני שימוש רשלני, והעבודה איתו אינה מובנת מאליה. עם זאת, ברגע שמבינים איך הוא עובד, אפשר לנצל את היכולות שלו גם למשימות מעניינות ושימושיות אחרות.

להמשיך לקרוא הלו טייני #5: לאלף את הכלב

הלו טייני #4: המרת ADC בסיסית

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

להמשיך לקרוא הלו טייני #4: המרת ADC בסיסית

לזרוס 1.2, או: היה באג?

בשקט בשקט יצאה לאוויר העולם גרסה 1.2 הרשמית של FPC/Lazarus, סביבת הפיתוח בקוד פתוח לשפת Object Pascal. נכון להיום, זו האופציה המודרנית היחידה עבור מי שרוצה לתכנת בשפה זו, ולא מוכן למכור כליה בשביל לקנות גרסה מלאה של Delphi. יש בגרסה הזו גם באג קטן ומעצבן מאד, אבל…

להמשיך לקרוא לזרוס 1.2, או: היה באג?

לוגי'ק לקמצנים – תכונות מתקדמות

בפוסט הקודם ראינו איך להגדיר טריגר עבור הלוג'יק, לבצע דגימה של אותות לוגיים מלוח ארדואינו, ולראות את התוצאות הגולמיות בתוכנה של Saleae. הפעם נראה איך מוציאים מהמדידה מידע מדויק יותר על זמנים ותדרים, וכיצד מפענחים נתונים שנשלחים בפרוטוקול תקשורת.

נתחיל במקום בו הפסקנו בפעם שעברה, עם המדידה של אות ה-PWM. זוכרים?

צילום מסך של דגימה ראשונית בתוכנה
צילום מסך של דגימה ראשונית בתוכנה

להמשיך לקרוא לוגי'ק לקמצנים – תכונות מתקדמות

לוג'יק אנלייזר לקמצנים – מבוא

מנתח לוגי ("Logic Analyzer") ראוי לשמו הוא מכשיר גדול, מורכב ויקר מאד – בערך בסדר גודל של אוצילוסקופ. עם זאת, בניגוד לסקופ, הלוג'יק מתעד רק רמות מתח דיגיטליות ("0" ו-"1" לוגיים, מכאן השם), ולכן מתאים ונוח במיוחד לעבודה עם מיקרו-בקרים, מעבדים למיניהם ומערכות דיגיטליות אחרות.

יש בשוק מספר התקנים בסיסיים יותר, שעושים את אותו הדבר אך עם יכולות מוגבלות פי כמה ובחיבור למחשב, כלומר ללא מסך או ממשק משל עצמם. בין המוכרים שבהם נמצאים Logic הקומפקטי של חברת Saleae, שמחירו $149 בלבד, ואחיו הגדול והמשוכלל Logic16 שעולה, נכון לעכשיו, פי שניים. התקנים כאלה הם מושלמים לחובבים שעובדים עם מיקרו-בקרים איטיים יחסית, כמו בארדואינו או ב-MSP430 Launchpad. לרוע המזל, המחיר עדיין קצת גבוה עבור החובב המתחיל הטיפוסי, ולנישה הזו נכנסו – כרגיל – חיקויים סיניים זולים.

להמשיך לקרוא לוג'יק אנלייזר לקמצנים – מבוא

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה