עבור לתוכן

פונקציות לקלט ופלט בפורטים

Featured Replies

פורסם

שלום לכם.

אני משתמש בעורך dev c++ ואני צריך להשתמש בפורטים.

התוכנה שלי מתחברת לחומרה חיצונית שמתחבר אל הפורטים במחשב.

מה הפונקציות? ואיך אני משתמש בהם, תודה רבה.

פורסם

באופן עקרוני, C לא מציעה פונקציות מסוג זה, שכן הם platform specific. לכל פלטפורמה יש בד"כ תוספות משלו לדברים כאלה.

כמו כן בהנחה שאתה משתמש ב-dev c++ ל-windows NT/2K/XP עם קומפיילר mingw gcc אז אתה בצרות, כיוון שלא ניתן באמת לגשת ל-port-ים אמיתיים תחת windows (לפחות לא בקלות). לדעתי תצטרך צירוף של dll/driver שיאפשר תקשורת עם ה-io ports.

באופן עקרוני הנה פונקציות inline assembler שאמורות לעבוד, אבל לדעתי רק תחת DOS ורק על x86:

unsigned inportb(unsigned port) {
unsigned char rv;
__asm__ __volatile__(
"inb %w1,%0"
: "=a"(rv)
: "d"(port));
return rv;
}
void outportb(unsigned port, unsigned val) {
__asm__ __volatile__(
"outb %b0,%w1"
:
: "a"(val), "d"(port));
}

אם היית עובד עם visual studio ב-windows 95, הייתי מציע לך להסתכל על קובץ conio.h

בהצלחה

פורסם
  • מחבר

שכחתי לציין, זה ירוץ על WIN98 שלפי מה שהבנתי לא עושה בעיות.

לפני שנה בערך השתמשתי ב VC++ בבית הספר והפונקציות עבדו טוב מאוד.

השנה אני צריך לבנות תוכנה ובחרתי להשתמש בDEV CPP כי אין לי כח לחפש את ה VC++.

פורסם

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

פורסם
  • מחבר

כאשר השתמשתי ב VC++ הוספתי את הספרייה CONIO.H והשתמשתי בפונקציה OUTP()

אין משהו יותר פשוט כדוגמאת זה ב DEVCPP? או שאני חייב ASM?

פורסם

בגדול dev-c++ זה רק IDE, והקומפיילר הוא GCC שהוא פורטבילי, ולכן קשה לי להאמין.

אתה יכול לברר פרטים על mingw שזה ההמרה של GCC ל-windows.

האסמבלר הוא יופי טופי במקרה זה.

ארכיון

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

דיונים חדשים