עבור לתוכן

יצירת ספרייה בארדואינו

Featured Replies

פורסם

שלום

קורה שיש לנו פונקציות שכתבנו, והן שימושיות לא רק בתוכנית אחת, אלא בכמה.

לשם כך, כדאי להעתיק אותן לקובץ נפרד שיהווה ספרייה,

ולספרייה הזו נעשה include בכל תוכנית שתצטרך אותה.

עשיתי בדיקה, ויצרתי קובץ h. קטן,

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

הפונקציה היא:

 
int TestFunction(int N)
{
return 2*N;
}

שמרתי את זה בקובץ בשם "Library.h".

אח"כ הלכתי לתוכנית ארדואינו כלשהי,

ושם הוספתי:


#include "D:\Folder\Library.h"

והוספתי שורה שמשתמשת בפונקציה, לראות שאכן הכל עובד:


Serial.println(TestFunction(80));

לחצתי Verify, ואכן עבר קומפילציה.

לחצתי Upload והרצתי,

ואכן הודפס לי בסריאל "160".

נפלא - אפשר להתחיל ליצור ספריות לארדואינו וכך להשתמש בקוד בכמה תוכניות.

עכשיו נותרה לי בעיה אחת:

אם אני רוצה לערוך את קובץ הספרייה הזה - Library.h,

אז אם אנסה לפתוח אותו עם סביבת הפיתוח של ארדואינו, הוא יתן לי MsgBox:

nmdzxf.png

הוא לא מוכן לפתוח קבצי h.

החלטתי לנסות לשנות את שם הקובץ לסיומת ino. - סיומת שאותה בטוח הוא יפתח,

ואז בדקתי אם אפשר לעשות include לקובץ ino, במקום לקובץ h, ושהכל יעבוד כמו קודם.

עשיתי rename לספרייה לסיומת ino,

עדכנתי את שורת ה-include בתוכנית,

ואכן זה עדיין עובד נהדר.

עכשיו סביבת הפיתוח יכולה לפתוח את הספרייה.

התקדמות.

עכשיו נותר דבר אחרון.

אם אני עורך את קובץ הספרייה, ואז רוצה לבדוק אם אין שגיאות כלשהן, אז אני לוחץ Verify על קובץ הספרייה,

ואז מה שקורה, זה שסביבת הפיתוח אומרת לי שחסרות לי בקובץ הספרייה שתי פונקציות: setup ו-loop.

אבל הקובץ הזה הוא הרי לא תוכנית להרצה, אלא קובץ ספרייה.. שיעשו לו include מתוך תוכניות אחרות..

ז"א שהוא לא אמור לכלול setup ו-loop.

אז מה עושים כדי שיהיה אפשר לעשות Verify על קובץ ספרייה, בלי שסביבת הפיתוח תעיר שיש שגיאה בכך שחסרות setup ו-loop?

תודה רבה

card

פורסם
  • מחבר

אף אחד לא כתב ספרייה לארדואינו, ונתקל בבעיה הזו?

פורסם

בכל מקרה כדאי לכתוב תוכנית ראשונית שמשתמשת בספריה כדי לבדוק אותה, אז כשתריץ אותה, היא כבר תדאג לבדוק שגם קוד הספריה בסדר. לא?

פורסם
  • מחבר

מה שאתה אומר הגיוני,

אבל בבדיקה, באופן מאד מוזר, זה לא קורה..

ניסיתי "לקלקל" את הקובץ ספרייה שכתבתי

(שיניתי מ-int ל-"indt", וכמו כן מחקתי ";" אחד)

ואז הלכתי לקובץ קוד שמשתמש בספרייה הזו,

עשיתי Verify, ועבר Verify..

מאד מוזר

פורסם
  • מחבר

עדכון..

מתברר שלפעמים זה כן קורה, ולפעמים זה לא..

אין לי מושג מתי כן ומתי לא..

כנראה שצריך להבין שזו סביבת פיתוח חלשה, ולא Visual Studio.

בכל מקרה, למי שצריך, אפשר לעשות טריק קטן:

בתוך הקובץ ספרייה שיצרתם,

לשים

 
void setup()
{}

void loop()
{}

אפשר להשתמש בהם במהלך הבדיקות שלה ספרייה,

ואז כשמסיימים,

לשים אותם ב-comment

 
/*
void setup()
{}

void loop()
{}
*/

עד לפעם הבאה שתרצו לערוך את הספרייה ולעדכן שם משהו.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים