אנחנו ממשיכים את סדרת הפוסטים הפופולרית (נניח) על תכנות בסיסי של מיקרו-בקר MSP430G2553 הוותיק של TI עם סביבת הפיתוח Code Composer Studio, והפעם ניצור משהו דמוי פונקציית millis של ארדואינו, בהתבסס על טיימר ועל פסיקה שלו.

אנחנו ממשיכים את סדרת הפוסטים הפופולרית (נניח) על תכנות בסיסי של מיקרו-בקר MSP430G2553 הוותיק של TI עם סביבת הפיתוח Code Composer Studio, והפעם ניצור משהו דמוי פונקציית millis של ארדואינו, בהתבסס על טיימר ועל פסיקה שלו.
בניגוד לדגמי ה-AVR ה"קלאסיים" שכל המייקרים מכירים, בדגמים המודרניים כל הזיכרון הבלתי-נדיף (NVM) של המיקרו-בקר, מכל הסוגים, מנוהל באופן אחיד על ידי אותם רגיסטרים. מה זה בעצם אומר, איך כותבים לבד קוד שעובד עם זה, והאם קיבלנו קצת זיכרון SRAM במתנה?
להמשיך לקרוא גישה ל-FLASH ו-EEPROM ב-AVR החדשיםיש רושם שבעולם האמבדד, לא משנה כמה ניסיון יש לנו וכמה פעמים נכווינו בעבר, אנחנו תמיד חוזרים ונופלים על אותן טעויות. או שאולי זה רק אני? והאם, במקרה עליו אספר כאן, הייתי יכול בכלל לנהוג אחרת? אתם תשפטו.
להמשיך לקרוא RTFDSהתכוונתי לכתוב משהו לרגל חגיגות העשור ללוח הארדואינו הראשון שלי, אך לחיי היומיום יש סדרי עדיפויות משלהם – אז במקום זה, הנה סיכום קצר של מה שקורה ומה שאולי יקרה אצלי בקרוב בתחום האמבדד. טוב, וגם קצת על הארדואינו ההוא.
להמשיך לקרוא איפה אני ואיפה ארדואינולא מזמן, חברת Microchip הכריזה על המיקרו-בקר ATmega328P חביב המייקרים בתור NRND – "לא מומלץ לתכנונים חדשים". זוהי הזדמנות טובה להכיר את המונח הזה, ולהבין מה הוא אומר והאם יש לנו וליצרני הארדואינו ממה לחשוש.
להמשיך לקרוא NRND – סיבה לבהלה?לפני כחודש הראיתי מדוע, כאשר המהירות חשובה, זה לא רעיון טוב להשתמש במערך של struct בקוד שמיועד למיקרו-בקר שאינו מסוגל לבצע פעולת כפל בחומרה (איזה משפט, אה? 🙂 ) בפוסט זה אראה איך לשמר, פחות או יותר, את הנוחות של struct בלי להתפשר על המהירות, גם ברכיבים מוגבלים כאלה – ואת הסכנות שאורבות לנו בדרך. יש גם דוגמת קוד בסוף.
להמשיך לקרוא גישה מהירה ל-Struct, בלי כפלnjkh… סליחה, מחליפים שפה במקלדת לעתים קרובות ומשתגעים מהטעויות שזה גורר? הנה פרויקט משולב של תוכנה, אמבדד והדפסה בתלת-ממד, שמראה בצורה בולטת וברורה לאיזו שפה המחשב מכוון בכל רגע נתון.
לפני שנתיים, כשכתבתי על לוח Nano Every מבית ארדואינו (שהיה אז חדש מאוד), שיערתי שלא יהיו לו חיקויים סיניים זולים: גם כי זה לוח פחות מוכר, אך בעיקר מפני שהגרסה הרשמית עצמה זולה יחסית. הסתבר שטעיתי, וכשגיליתי פתאום בעליאקספרס לוחות "תואמים" מיהרתי להזמין אחד כדי לראות מה בדיוק הם עשו שם. הנה המסקנות.
כשמיקרו-בקר פשוט צריך לחזור על פעולה מסוימת הרבה ומהר, עיכובים יכולים לצוץ מכל מיני מקומות מאוד לא צפויים. הנה סיפור קצר על המחיר הפחות-מוכר של מבנה הנתונים השני הכי פשוט בשפת C.
גם אם כותבים קוד ארדואינו בסביבת הפיתוח הבסיסית, לא חייבים להעלות אותו ללוחות ארדואינו קנויים – אפשר למעגלים ולוחות משלנו, כל עוד המיקרו-בקר מצויד ב-Bootloader הנכון. העסק נהיה קצת יותר מורכב כשעוברים לקוד שמיועד ל-Arduino Nano Every החדש. הנה הסיבות, ודרך קלה וזולה להתמודד איתן.