ארכיון הקטגוריה: תוכנה

חידות תכנות 2: חלק מהמערך, חצי מהסכום

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

להמשיך לקרוא חידות תכנות 2: חלק מהמערך, חצי מהסכום

קלט ופלט בסיסיים ב-Xiao RP2040

אחרי שראינו איך מכינים את לוח הפיתוח הזעיר לעבודה עם MicroPython ומעלים אליו קוד, בואו נלמד כיצד מבצעים את הפעולות הבסיסיות של קלט ופלט דיגיטליים, פלט PWM וקלט אנלוגי. המידע הזה יתאים גם ללוח Raspberry Pi Pico.

לוח Xiao RP2040 עם לד ולחצן
לוח Xiao RP2040 עם לד ולחצן
להמשיך לקרוא קלט ופלט בסיסיים ב-Xiao RP2040

תסריטי פעולה (או: בלינק למתקדמים)

הדבר הראשון שעשינו עם ארדואינו זה להבהב בלד, שנייה ON ושנייה OFF במחזוריות. מאז התקדמנו קצת, ועכשיו הלקוח מבקש – במקביל לפעולות האחרות של המערכת! – שהלד "יהבהב שלוש פעמים מהר, יכבה לעשר שניות ואז יהבהב לאט פעמיים עם fade. לא, רגע, ארבע פעמים. קצת יותר מהר. אתה יודע מה, בעצם…" בואו נראה איך אפשר להתמודד ביעילות עם תסריטי פעולה כאלה, ועם שינויים תכופים שאנחנו מתבקשים לעשות בהם.

להמשיך לקרוא תסריטי פעולה (או: בלינק למתקדמים)

סיפורי אופטימיזציה: ניהול באפר במינימום זיכרון

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

להמשיך לקרוא סיפורי אופטימיזציה: ניהול באפר במינימום זיכרון

חידות תכנות 1.5: עוד סהרונים ומטריות

בפוסט הקודם טיפלנו במקרה הקל, שבו האמן צריך היה לשלם על כל CJ וכל JC שמופיעים בציור שלו. כעת אנחנו עוברים לשלב הבונוס של אותה חידה, שבו שני הצירופים האלה – או רק אחד מהם! – יכולים להוות מקור הכנסה לאמן.

להמשיך לקרוא חידות תכנות 1.5: עוד סהרונים ומטריות

גישה מהירה ל-Struct, בלי כפל

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

להמשיך לקרוא גישה מהירה ל-Struct, בלי כפל

פרויקט: מחוון שפת הקלדה

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

מחוון השפות בפעולה
מחוון השפות בפעולה
להמשיך לקרוא פרויקט: מחוון שפת הקלדה

העלות הסמויה של struct

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

מימין לאט, משמאל מהר – לפרטים, קיראו למטה
להמשיך לקרוא העלות הסמויה של struct