برگزیده های پرشین تولز

برنامه نویسی سخت افزار تحت سیستم عامل ویندوز ایکس پی

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
سلام دوستان
من یه مدتی است که برنامه نویسی سخت افزار تمرین میکنم
در محیط های ویژوال بیسیک 6 و دلفی 7
مثل پورت های سریال و موازی ، یو اس بی ، کارت صدا و کلاً سخت افزار در سیستم های پنتیوم 4
من در ویندوز 98 در دسترسی به آدرس ها و سخت افزار ها هیچ مشکلی ندارم و در ویندوز XP اکثر
برنامه هایی که مینویسیم ارور میدن و اجرا نمیشن این رو میدونم که پورت و آدرس ها تو XP فرق
می کنن و باید اونا رو شناسوند و یا درایور نصب کرد
من چطور میتونم این مشکل رو حل کنم ؟ و برنامه هایی که تو ویندوز 98 نوشته میشن تو XP هم
درست اجرا بشن و یا اصلاً تحت ویندوز XP بنویسم ؟
از دوستانی که تو این زمینه اطلاعات و تجربه دارن لطفاً منو راهنمایی کنن
ممنون از همتون
:)
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
مثلاً این یه برنامه ساده هستش برای کارت صدا یه بیپ میفرسته
ولی تو ویندوز 98 درست اجرا میشه و کار میکنه ولی تو ایکس اصلاً
کار نمیکنه و از برنامه میپره بیرون :(
خود فایل و سورس و dll مورد نظر رو هم اتچ کردم :)
 

فایل های ضمیمه

  • Sound_VB5.zip
    225.5 KB · نمایش ها: 53

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
یعنی دوستان تو این زمینه اطلاعاتی ندارند ؟؟؟ ;) :(
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
خوب این چند حالت داره :
1 - نمیدونین و چیزی نمیگین
2 - میدونین و چیزی نمیگین
اشکال نداره چیزی که فراوونه فروم تخصصی برنامه نویسی میرم از اونا میپرسم
بای
:)
 

Persianit

Registered User
تاریخ عضویت
19 ژوئن 2005
نوشته‌ها
907
لایک‌ها
16
سن
38
محل سکونت
پای کامپیوتر
برای برنامه نویس سخت افزار در ویندوز xp مشکل خاصی وجود نداره
دقیقا بگو چه کار می خوای بکنی:
1- میکرو پروگرام کنی
2- با پورتها کار کنی(با هر زبانی میشه)
3- ؟؟؟
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
به نقل از Persianit :
برای برنامه نویس سخت افزار در ویندوز xp مشکل خاصی وجود نداره
دقیقا بگو چه کار می خوای بکنی:
1- میکرو پروگرام کنی
2- با پورتها کار کنی(با هر زبانی میشه)
3- ؟؟؟


ممنون پرشین جون که لااقل تو یه دونه پست زدی :)
همون طور که تو پست اولم گفتم مشکلم اینه :

به نقل از Electronics Art :
من یه مدتی است که برنامه نویسی سخت افزار تمرین میکنم
در محیط های ویژوال بیسیک 6 و دلفی 7
مثل پورت های سریال و موازی ، یو اس بی ، کارت صدا و کلاً سخت افزار در سیستم های پنتیوم 4
من در ویندوز 98 در دسترسی به آدرس ها و سخت افزار ها هیچ مشکلی ندارم و در ویندوز XP اکثر
برنامه هایی که مینویسیم ارور میدن و اجرا نمیشن این رو میدونم که پورت و آدرس ها تو XP فرق
می کنن و باید اونا رو شناسوند و یا درایور نصب کرد
من چطور میتونم این مشکل رو حل کنم ؟ و برنامه هایی که تو ویندوز 98 نوشته میشن تو XP هم
درست اجرا بشن و یا اصلاً تحت ویندوز XP بنویسم ؟


مثلاً همون برنامه ای که تو پست دوم اتچ کردم یه بیپ برای کارت صدا
در ویندوز 98 بخوبی کار میکنه ولی در XP اصلاً
در ضمن با پروگرم کردن میکروها تو XP اصلا/ً مشکل ندارم
مشکلم همون کار با پورت ها و کلاً سخت افزار هستش
:)
 

Persianit

Registered User
تاریخ عضویت
19 ژوئن 2005
نوشته‌ها
907
لایک‌ها
16
سن
38
محل سکونت
پای کامپیوتر
برای دسترسی به پورتها باید از api ها استفاده کنی چون خود زبان برنامه نویسی(تحت ویندوز) این قابلیت را نداره. چند تا مطلب دارم بگردم پیدا کنم برات می فرستم.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
از وظایف یک سیستم عامل همینه که اجازه دسترسی مستقیم به سخت افزار رو نمیده.

از DirectX استفاده کن
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
به نقل از mazoolagh :
از وظایف یک سیستم عامل همینه که اجازه دسترسی مستقیم به سخت افزار رو نمیده.

از DirectX استفاده کن


خوب چرا ويندوز 98 اين اجازه رو ميده مگه اون سيستم عامل نيستش :blink:

خوب حالا چه جوري از DirectX استفاده كنم :blink:

نكنه منظورت ActiveX هستش ;)

در ضمن من از اكتيو ايكس ها و DLL هاي مربوطه استفاده ميكنم در ويندوز 98 مشكلي نبيد در XP مشكل بيد :(
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از Electronics Art :
خوب چرا ويندوز 98 اين اجازه رو ميده مگه اون سيستم عامل نيستش :blink:

خوب حالا چه جوري از DirectX استفاده كنم :blink:

نكنه منظورت ActiveX هستش ;)

در ضمن من از اكتيو ايكس ها و DLL هاي مربوطه استفاده ميكنم در ويندوز 98 مشكلي نبيد در XP مشكل بيد :(


میزان محافظت و ایزوله کردن در سیستم عاملهای مختلف فرق میکنه.
منظورم دقیقا directx بود و فکر کنم راه بهتری برای دسترسی به سخت افزار باشه ولی راه استفاده اش رو بلد نیستم.

جواب پرشین در مورد api هم کاملا درسته ولی کار جیگردرآریه! از dot net استفاده کن.
 

HACKER_BEREFIN

کاربر تازه وارد
تاریخ عضویت
10 می 2004
نوشته‌ها
13
لایک‌ها
0
سلام دوستان
این یه dll برای کارکردن با پورت ها در xp که مثل همون قبلی داخل 98 است .:D
به همراه یک نمونه .......
به دردتون میخوره ...
 

فایل های ضمیمه

  • inpout32_source_and_bins.zip
    264.8 KB · نمایش ها: 142

Roby

کاربر فعال فوتبال<br> عضو تحریریه مجله فوتبال
کاربر فعال
تاریخ عضویت
20 ژوئن 2005
نوشته‌ها
1,263
لایک‌ها
1,395
سلام
در ویندوز 98 شما اجازه دستیابی به هر آدرس و پورتی را دارید و با یک دستور outp یا inp در VC می تونید به هر ادرسی هر داده ای را که بخواهید ارسال کنید
اما در ویندوز Nt , xp سیستم عامل چنین اجازه ای به شما نمی دهد
برای حل این مشکل یک راه حل استاندارد وجود دارد و یک راه حل غیر استاندارد
راه استاندارد اینه که برای کار با یک کارت بایستی از درایور ان استفاده کنید یا اگر یک کارت Custom و ساخت خودتون هست برای ان درایور بنویسید برای نوشتن درایور هم بایستی از DDK یا Driver Development Kit استفاده کنید .
اما راه حل غیر استاندارد دستکاری protection های کرنل سیستم عامل است که اصولا کار علطی است و ممکن است برنامه شما را دچار اشکالات مختلف و خطاهای زمان اجرا کند حتی میتواند منجر به Crash شدن سیستم عامل شود. اما بهر حال قابل استفاده است و برای کارهای غیر حرفه ای جواب میدهد
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
به نقل از mazoolagh :
منظورم دقیقا directx بود و فکر کنم راه بهتری برای دسترسی به سخت افزار باشه ولی راه استفاده اش رو بلد نیستم.
جواب پرشین در مورد api هم کاملا درسته ولی کار جیگردرآریه! از dot net استفاده کن.


ممنون مازلوق جان به نظرم از DirectX بيشتر در برنامه هاي كه مالتي مديا هستند
و روي صوت و تصوير كار ميكنند استفاده ميكنند براي كارت صدا و كارت گرافيكي
ولي به هر حال من نيز استفاده از را بلد نيستم اگر مرجعي سراغ داري معرفي كن
در مورد توابع API ويندوز هم نياز به مرجع قوي ميباشد كه متاسفانه در اختيار ندارم
اگر در اين مورد هم مرجعي ميشناسي ممنون ميشم معرفي كني
در مورد دات نت هم هنوز اول راه هستيم و سراغ دات نت نرفتم ولي در دات نت و در چهار چوب
FreamWork 2.0 فكر كنم ابزاري براي كار با سخت افزار گنجانده شده باشد ولي هنوز اين نسخه
به صورت كامل منتشر نشده است :)

به نقل از HACKER_BEREFIN :
این یه dll برای کارکردن با پورت ها در xp که مثل همون قبلی داخل 98 است
به همراه یک نمونه .......
به دردتون میخوره ...

ممنون هكر جان
اينو قبلاً داشتم ولي هيچ وقت سراغش نرفتم
فكر كنم جوابگو باشه بايد بشينم باهاش كار كنم
بازم ممنون ازت كه نظر دادي

به نقل از Roby :
راه استاندارد اینه که برای کار با یک کارت بایستی از درایور ان استفاده کنید یا اگر یک کارت Custom و ساخت خودتون هست برای ان درایور بنویسید برای نوشتن درایور هم بایستی از DDK یا Driver Development Kit استفاده کنید .

ممنون رابي جان
در مورد استفاده از درايو ميتوني يكم بيشتر توضيح بدي و يا مرجعي معرفي كني ;)
 

Roby

کاربر فعال فوتبال<br> عضو تحریریه مجله فوتبال
کاربر فعال
تاریخ عضویت
20 ژوئن 2005
نوشته‌ها
1,263
لایک‌ها
1,395
سلام
خب اول مشخص کنید که کارت مورد نظر Custom هست یا یک کارت تجاریه
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
به نقل از Roby :
سلام
خب اول مشخص کنید که کارت مورد نظر Custom هست یا یک کارت تجاریه

خوب شما هر دو تا رو بگين و اگه مرجعي هستش معرفي كنين :)
ممنون
 

rezamansouri

کاربر تازه وارد
تاریخ عضویت
30 مارس 2005
نوشته‌ها
146
لایک‌ها
3
محل سکونت
Tehran
سلام
هر چی می خواستی Roby گفت.
فقط بگم در سایتی خوندم که درایور نویس شدن یک سال وقت و 1000 دلار هزینه بر میداره!!!!!!!!
بهترین کار ممکن استفاده از درایورهای آماد است:
1-Inpout32
2-DriverLinx
3-PortTalk
اولی و سومی فقط بایت منتقل میکنند ولی دومی خیلی کاملتره.

اگه هوس کردی درایور بنویسی دنبال DDK نرو چون Jungo خیلی بهتره.میتونی رایگان دانلودش کنی ویک ماه ازش استفاده کنی(البته کرکش هم هست).

واما برای USB :
1-درایور عمومی آماده : libusb
2-استفاده از Jungo

http://libusb-win32.sourceforge.net
http://www.jungo.com
http://www.driverlinx.com/DownLoad/DlPortIO.htm
http://www.logix4u.net/inpout32.htm
http://www.beyondlogic.org/porttalk/porttalk.htm
 
بالا