שלום לכולם! חדש כאן

dejavu

New member
שלום לכולם! חדש כאן

שלום אני חדש בפורום הזה, בן 19 בעל ניסיון בתכנות ברמה בסיסית בVB פסקל וכו'... לאחרונה חשבתי לרכוש ספר העוסק בשפת התכנות C ועלו לי כמה שאלות, אשמח אם תוכלו לעזור... ראשית אני מתעניין במקביל באלקטרוניקה וחומרת מחשב ואני מעוניין ללמוד באופן עצמאי שפה שתאפשר לי בעתיד לכתוב תוכניות שיתקשרו עם רכיבים... לדוגמא - תוכנה בסיסית שתשמש כVOLT-METTER, ככה שאפשר יהיה בעצם לחבר מקור מתח ליחידת בדיקה שמחוברת למחשב והתוכנה תראה כמה וולט נקלט מהפורט... באיזה שפה כדאי לי להתמקד, אני יודע שלפני דרך ארוכה עד להגיע לרמה כזו של תיכנות אבל יש לי גישה לתחום ואני מקווה להצליח... חשבתי ללמוד שפת C++, מה דעתכם? אשמח אם מישהו יוכל להמליץ לי על ספר... תודה מראש!
 

אלדד28

New member
בשביל זה אתה צריך לדעת

אסמבלי לפחות, C רצוי מאוד, ו-++C מומלץ מאוד. ספרים טובים באים בדרך כלל באנגלית. לאסמבלי חפש ברשת את The art of assembly, ל-++C חפש את ++Thinking in C (שניהם ניתנים להורדה בחינם ברשת בדרכים חוקיות למהדרין). אני לא ממש בקיא בספרות C איכותית ברשת או בכלל, אני במקומך הייתי לומד C ברפרוף ואח"כ לומד ++C לעומק.
 

barakbl

New member
למה?

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

barakbl

New member
בעצם שאני חושב על זה

הכי הרבה שהייתי זקוק לו, שמערב קצת אסמבלי, זה debug (התוכנית של DOS), כדי לבצע פה ושם דיבאגינג מהיר..... אני זוכר ששנאתי אז אסמבלי, והתעקשתי לבצע את הכל דרך ++c וביום של הגשת הפרויקט משהו לא עבד כצפוי (למעשה תוך כדי שאחרים כבר מציגים את הפרויקט שלהם), ולא הצלחתי לדבאג אותו ב ++C רצתי למנחה שלי (שהיה בחדר מורים) הנ"ל שאל אותי אם בדקתי בעזרת DEBUG אמרתי לו שאין טעם ושאני בטוח שהבעיה באה מהחומרה, הנ"ל אמר שהוא לא בא לכיתה עד שאני לא בודק עם דיבאג, בדיעבד הוא צדק... גיליתי שם את הבאג המטומטם, שהיה איזה פאק בקוד ++c שלי
השימוש ב debug לא הכרחי, אבל בהחלט מקל על העבודה בפרויקט מסוג כזה (לפחות בצורה שבא אנחנו עבדרנו). חחח... בקיצור, למרות שאני לא דוגל בלהקשיב לשטויות של מורים, לפעמים זה הדבר הכי נכון לעשות. צריך רק לדעת לסנן ולהבין מתי להקשיב ומתי להתעלם
 

Zack DA

New member
למה ויתרת כל כך מהר ? ../images/Emo13.gif

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

אלדד28

New member
בהחלט, אבל חיוני זה לא.

כדאי לדעת גם פסקל ו-JAVA ו-VB ו-PHP ו-HTML ועוד ועוד ועוד - כל המרבה הרי זה משובח.
 
C ו-CPP תמיד טוב לדעת...../images/Emo26.gif

ולגבי ההתעניינות שלך בחומרה - יש שפות ייעודיות לתכנות חומרה. חפש בגוגל - VHDL ו-Verilog.
 
כמה כיוונים אפשריים

את ממשק התוכנה הגרפי בצד של ה-PC שווה לך לכתוב באחת מהשפות הפופולריות, כמו C++, JAVA או VB. לגבי התקשורת: שווה לך להתמקד בממשקי תקשורת כמו USB, RS232, IRDA וכד', כי כדי לתקשר עם מחשב PC אתה חייב שתהיה לך היכולת לשדר באחד מהפרוטוקולים הקיימים. אם תעבוד עם פרוטוקול סטנדרטי, תמצא ביתר קלות ספריות שירות העוזרות לקבל/לשדר בפרוטוקול הזה, מבלי להתחיל ליישם דברים כאלה בעצמך. סביר מאוד להניח ששימוש בספריות כאלה ידרשו ידע ב-C. לגבי המכשיר עצמו: אם הרכיב שלך פשוט, יכול להיות שתוכל לחווט אותו לממשק תקשורת RS232 לדוגמה, דרך ממיר מתאים כמובן. אבל זה כבר תלוי בסוג רכיבי התקשורת שתבחר וכו'.
 

yair24

Member
DAC ADC

קודם כל בהנחה שאתה רוצה לחבר מקור מתח אתה צריך שיהיה לך משהו שיודע לתרגם את המתח האנלוגי ל"תוכנה" (דיגיטלי) יש רכיבים שיודעים לעשות דבר כזה והם נקראים A2D אנלוג טו דיגיטל. בשביל לעבוד עם הרכיבים האלה אתה צריך לקרוא את הDATASHEET שלהם ולראות איך מדברים איתם, אם זה באמצעות מחשב או מיקרוקונטרולר. אני לא יודע אולי יש רכיב שמאפשר לך לחבר מקור מתח וכבר עושה את כל פעולת השליחה של המתח האנלוגי למחשב בצורה דיגיטאלית בצורה BUILT IN אבל אני לא מכיר דבר כזה... את ההצגה של המתח אתה יכול לעשו באמצעות כל שפה לאו דוקה C או C++ תתפלא אפשר אפילו לעשות את זה בVB. יאיר
 

voguemaster

New member
יש כבר

זה מיושם בעיקר בלוחות אם של מחשבים כדי לקרוא את המתח של ה-CPU והמאווררים וכד'. בד"כ זה השימוש היחיד. מצד שני, זה יכול להיות תרגיל נחמד באלק' לבנות רכיב כזה.
 

yair24

Member
אוקיי

אז אתה צריך להבין איך עובדים עם זה כלומר איך קוראים את הערך שמגיע מה A2D אם בכלל יש לזה API ואם בכלל אפשרי לחבר לזה שני בננות שיוצאות מהספק כח בלי לשרוף חצי מחשב... אני לא חושב שאתה יכול סתם ככה לחבר שם יציאות של ספק כח... מה גם שגם אם כן רצוי שזה יהיה חיבור יותר נחמד מאשר שני חוטים שיוצאים מספק ומתחברים בלי שום קונקטור וסתם בצורה פיראטית... אם אני הייתי צריך לעשות דבר כזה הייתי לוקח מיקרוקונטרולר קטן עם יציאת RS232, תופר לו A2D צורב עליו תוכנה שיודעת לקרוא את הערך מהA2D ושולחת את הערך בפרוטוקול קטן שהייתי ממציא לאחד הCOM-ים של המחשב. את הCOM הייתי קורא עם תוכנת UI קטנה שהייתי כותב בVC או VB זה לא משנה, ומציג את הערך בצורת ממשק פשוט. יאיר
 
זה מיושם אמנם בתוך המחשב,

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

linuxius

New member
למה מיקרו-קונטרולר ?

קודם כל כמו שאינגלומו אמר נכון והוא יצטרך רכיב מסוג MAX232 כי הלוגיקה של הרכיבים פועלת ברמות מתוח שונות. הוא יכול להתממשק דרך LPT בלי שום חומרה נוספת בתוך המחשב. אני חושב שכן צריך ללמוד אסמבלי ואפילו בצורה די מעמיקה,מתכנת שמבין קו ואוגר יחשוב יותר טוב במערכות כאלה. אני לא מבין למה לרוץ ישר ל-c++, אני חושב שבלי לדעת תכנות פרוצדוראלי קודם, חלק מהבנת ה-OOP מתבזבזת. ואם אתה כבר אלקטרוניקאי, כך עצה ותלמד VHDL, אתה יכול לממש אלפי רכיבים בתוך רכיב מתוכנת אחד ולחסוך אלפי שורות קוד ומאות רכיבים
 
עד כמה שהבנתי,

את הרכיב החיצוני כבר יש לו - מדובר בוולטמטר. הוא לא צריך לבנות אחד, אלא להתממשק עם PC. לכן הוא לא צריך ללמוד VHDL. אם ההתממשקות תהיה דרך פרוטוקול סטנדרטי, אז אין צורך ב-ASSEMBLER, אלא מקס' ב-C (שימוש בספריות מוכנות לתקשורת עם הפורטים). מכיוון שהוא אמר שהוא רוצה לממש GUI בצד של ה-PC, אז C++ או VB מתבקשות, מכיוון שבעזרתן בניית GUI היא קלה ודי גמישה (תלוי כמובן במה יש לך יותר נסיון, ןבדרישות שלך מה-GUI).
 
למעלה