רועי שלום,
השאלה שלך קשורה לפרוטוקולי תקשורת
אחת האפשרויות להעביר את המידע מהמקום שבו הוא נמצא לזיכרון ומהזיכרון להעביר אותו למקום המיועד (למשל התקן I\O)
יש אפשרות להוסיף שעונים, אם יש שעון משותף אז הפעולה היא סינכרונית או לחילופין שלכל אחד יהיה שעון משלו ואז התקשורת תהיה א-סינכרונית (למשל בסיב אופטי עובדים בצורה א-סינכרונית מכיוון שאין עוד bus שישמש כשעון)
אפשרות מהירה יותר (ללא שעון) היא להעביר את המידע לכתובת מסוימת בזיכרון [נניח 40:E] כתובת נוספת בזיכרון [נניח 40:F] רואה שיש מידע בכתובת 40:E ומעתיקה אותו,
מוחקים את המידע ב 40:E ובכך מאשר שכתובת 40:E יכולה לקבל עוד מידע
כתובת 40:F מעבירה את המידע ליעד (למשל התקן I\O)
כדי לממש את זה יש תוכנה שמתמחה בתקשורת מחשבים בשם LabWindows/CVI
לתוכנה הזאת יש ממשק גרפי והיא מאפשרת גם לתכנת בשפת C ובנוסף לשפת C
יש לה עוד פקודות שמיועדות לתקשורת מחשבים כמו למשל:
( , , )GetCtrlVal – כדי לקבל מידע כל ביט בנפרד
( , , )SetCtrlVal – כדי לשלוח מידע כל ביט בנפרד
( , , )ReadFromPhysicalMemory – כדי לקרוא מהזיכרון
( , , )WriteFromPhysicalMemory – כדי לכתוב לזיכרון
( , )Inp – להכניס לפורט מידע מאפשר קבלת מחרוזת
( , )Outp – להוציא מהפורט מידע מאפשר שליחת מחרוזת
באתר הזה תוכל למצוא פורום מצוין בנושא
http://forums.ni.com/ni/
ארי גרינשפון