View Full Version : آموزش ارتباط با سخت افزار
alireza643
یک شنبه 21 مرداد 1386, 14:39 عصر
ارتباط بین نرم افزار و سخت افزار یکی از کارهای بسیار دوست داشتی و پر کاربرد در صنعت امروز دنیاست. ولی این کار از یک مهندس نرم افزار یا یک مهندس سخت افزار و الکترونیک به تنهایی ساخته نیست بلکه مجموعه ای از هر دو تخصص رو طلب میکنه. ولی این مطلب فقط در مورد کار های صنعتی و بزرگ صدق میکنه نه درباره کارهای کوچیک و تجربه های شخصی (البته همین کارهای کوچیک هستن که پایه گذار یک تخصص میشن). پس تکلیف کسانی که دوست دارن تو خونه برای تجربه خودشون یه برنامه جمع و جور بنویسن چی میشه. باید چی کار کنن؟
سوالات زیر تیتر خیلی از تاپیک هایی هست که تو این چند سالی که سایت داره فعالیت میکنه زده شدن.
چطوری میشه با کامپیوتر یک LED رو روشن کرد؟
کنترل سخت افزار به کمک کامپیوتر
چگونگی برقراری ارتباط بین کامپیوتر و دستگاه های جانبی
بعضی ها به نتیجه رسیده و بعضی ها هم نه بعضی هم از نظر نرم افزار به نیجه رسیده ولی به خاطر عدم آشنایی کامل با پورت و سخت افزار باعث صدمه دیدن پورت یا دستگاه جانبی شده.
مطالب بالا دلیل این بود که من به این نتیجه برسم که شاید بد نباشه یه بخش آموزش ارتباط با سخت افزار هر چند مختصر تو سایت داشته باشیم.
میدونم مطالب کامل نیست و خیلی جاها شاید مشکل داره ولی این بخش حاصل تجربیات شخصی خود من هست و سعی میکنم در حد امکان و توانایی خودم مطالب مهم تو برنامه نویسی، ساخت بخش سخت افزاری و نکات مهم پورتی که برای اون برنامه مینویسیم رو در اختیار دوستان قرار بدم امیدوارم دوستان و اساتید مشکلات و کمبود های کار بنده رو به من تذکر بدن.
یه خواهشی هم دارم اینه که اگر درباره هرکدوم از برنامه ها یا مدارات سوالی داشتید به من پیغام خصوصی بدید تا جواب اون رو در بخش پرسش و پاسخ مربوط به همون برنامه قرار بدم و این طوری از به هم ریختگی تاپیک جلوگیری بشه و دوستان هم راحت تر از مطالب استفاده کنن.
برای شروع و انجام این برنامه ها به امکانات زیر نیاز داریم
1- کامپیوتر شخصی
2- کامپایلر C++ (خودم از borland استفاده میکنم ولی برنامه ها محدودیتی تو کامپایلر ندارن)
3-PortTalk
4- تعدادی مقاومت
5- منبع تغذیه 5 ولتی یا باطری
موارد ذکر شده قسمت های اصلی و مورد نیاز بود ولی برای ادامه پروژه ها یک سری امکانات دیگه هم هست که برای راحتی کار و بعضی جاها محافظت از خودتون و کامپیوتر نیاز دارید ولی بدون اون ها هم میشه کار رو انجام داد. یک سری امکانات هم هست که برای دیدن نتایج کار لازم و ضروری هست ولی نه برای کل پروژه ها بلکه برای یک یا چند پروژه خاص که اون ها رو هم در زیر نوشتم:
1- کابل پرینتر
2- بردبورد
3- مقداری سیم نازک
4- ترانزیستور
5- گیره سوسماری
مواردی که برای تست برنامه نیاز داریم:
1- LED
2- LCD
3- StepMotor
متشکرم.
موفق باشید.
alireza643
یک شنبه 21 مرداد 1386, 15:20 عصر
در سیستم عامل های قدیمی شما به راحتی میتوانستید اطلاعات خود را به پورت ارسال کنید یا از آن اطلاعات را بخوانید اما در سیستم عامل های جدید این امکان از کاربر و برنامه نویس گرفته شده و دیگر به راحتی نمیتوان اطلاعات را بین برنامه و پورت ها انتقال داد.
برای این کار راه حل هایی وجود دارد مثل استفاده از برنامه ها و یا DLL هایی که شرکت های فعال در این زمینه در اختیار برنامه نویسان قرار میدهند از بین برنامه های مختلفی که برای این کار وجود دارد میتوان به PortTalk و از بین DLL ها به WinIO.dll اشاره کرد.
ما در این تاپیک ابتدا روش کار با PortTalk را توضیح میدهیم و در ادامه به توضیح WinIO میپردازیم.
برنامه PortTalk شامل 4 فایل اصلی میباشد. 1- PortTalk.reg ، 2- PortTalk.sys، 3- PortTalk_IOCTL.h و 4- pt_ioctl.c
برای استفاده از امکانات این برنامه به روش زیر باید عمل کرد
ابتدا فایل PortTalk.sys در /system32/drivers کپی کرده و سپس PortTalk.reg را اجرا کنید. بعد از این کار سیستم را restart کنید. بعد از بوت شدن کامپیوتر شما برای کار با این برنامه آماده است. برای کار فایل های PortTalk_IOCTL.h و pt_ioctl.c را کنار برنامه خود کپی کنید و از آنها استفاده نمایید. این برنامه 4 تابع در اختیار شما قرار میدهد که به کمک آنها میتوانید با پورت ارتباط برقرار کنید.
OpenPortTalk(): برای برقراری ارتباط با پورت
ClosePortTalk(): برای اتمام ارتباط با پورت
InP(): برای خواند از پورت
OutP(): برای نوشتن در پورت
توضیحات تکمیلی و شرح کامل کار کردن با این برنامه رو به زمان نوشتن برنامه ها موکول میکنم. از اونجایی که این برنامه کپی رایت نداده و قرار دادنش روی سایت بر خلاف مقررات نیست به همراه این پست یک نسخه از برنامه PortTalk وجود داره که میتونید از اون استفاده کنید.
alireza643
سه شنبه 23 مرداد 1386, 08:10 صبح
یکی از ساده ترین و پرکاربرد ترین پورت های کامپیوتر پورت موازی هست.این پورت دارای 25 پایه هست و پشت همه کامپیوتر ها میشه اون رو دید.
مزایای این پورت به اندازه ای هست که اون رو یکی از پورت های پر کاربرد کرده. در زیر لیست یکسری از مزایای این پورت آورده شده.
1-نیاز به رمز گشایی و پروتکل خاصی برای انتقال اطلاعات نداره.
2-برای همه کامپیوترها در دسترسه
3-برای تمام پایه های این پورت امکان برنامه ریزی وجود داره
4-سرعت این پورت از پورت سری بیشتره
اما در مقابل این خوبی ها ضعف هایی هم داره که عبارتند از:
1-برد کم
2-هزینه ی بالا برای انتقال اطلاعات
3-دشواری در پیدا کردن خطا هایی که موقع انتقال اطلاعات به وجود میاد
حالا که مزایا و معایب این پورت رو فهمیدیم باید برای اون برنامه نویسی کنیم. برای تبادل اطلاعات بین هر قسمتی از کامپیوتر نیاز به آدرس اون قسمت داریم. برای دسترسی به آدرس پورت موازی تو سیستم عامل ویندوز به روش زیر عمل میکنیم
روی MyComputer راست کلیک میکنیم و از او Property میگیریم به تب Hardware میریم و از اونجا گزینه ی Device Manager را انتخاب میکنیم. از زیر مجموعه ی Ports روی LPT کلیک میکنیم به تب Resources میریم و اونجا میشه آدرس پورت رو پیدا کرد این آدرس معمولا در همه کامپیوترها یکسان و 378 میباشد.
پورت موازی از نظر نرم افزاری به سه بایت تقسیم بندی میشه که به هر کدوم از این بایت ها رجیستر هم گفته میشه که آدرسی که در قسمت بالا پیدا کردیم آدرس اولین بایت بود. برای 2 بایت دیگه هم عدد یک رو به آدرس به دست اومده اضافه میکنیم.
اولین بایت از این سه بایت به رجیستر دیتا معروفه و از اون برای ارسال و دریافت اطلاعات استفاده میشه.به این بایت میشه از طریق پایه های 2 تا 9 درسترسی داشت.
بایت بعدی با نام وضعیت شناخته میشه یک بایت ورودی هست که از اون برای دریافت وضعیت دستگاه جانبی استفاده میشه. برای دسترسی به بیت های این قسمت از پایه های 15،13،12،11و 10 استفاده میشه.
و آخریت قسمت با نام کنترل شناخته میشه و از اون برای کنترل پورت استفاده میشه و به صورت خروجی میشه از این قسمت استفاده کرد. برای دسترسی به این پورت از پایه های 1،14،16و 17 استفاده میشه.
همونطور که مشاهده کردید اولا تو دو قسمت آخری به همه بایت ها از نظر سخت افزاری دسترسی وجود نداره و فقط با برنامه میشه اون رو کنترل کرد. و ثانیا پایه هایی که وجود داره کل پایه های پورت موازی رو پوشش نمیده. بقیه ی پایه های باقی مونده برای گراند استفاده میشن که دو طول پروژه بیشتر با این قسمت آشنا میشیم.
نکته ی دیگری که میشه به اون اشاره کرد ورودی یا خروجی بودن بایت دیتا هست. این بایت به صورت پیش فرض خروجی در نظر گرفته شده ولی با ارسال عدد 1 با بیت 5 از بایت کنترل میتونیم این بایت رو به صورت ورودی استفاده کنیم.
با توجه به نکات بالا میشه فهمید که ما در آن واحد میتونیم 12 پایه خروجی و 5 وروری یا 13 ورودی و 4 خروجی داشته باشیم.
برای کار کردن با این پورت به نکات زیر باید توجه کرد:
برد این پورت حداکثر 3 متر میباشد و به ازای هر بیتی که انتقال میدهیم 1 سیم داریم و 1 سیم گراند هم برای کل مدار نیاز داریم.پایه های این پورت مقاومت داخلی 470 اهمی دارند که در طراحی مدار باید در نظر گرفته شوند.
alireza643
شنبه 27 مرداد 1386, 09:07 صبح
بعد از اینکه PortTalk رو نصب کردیم نوبت میرسه به نوشتن برنامه. برنامه زیر خیلی ساده هست ولی برای شروع کار شاید خوب باشه.
#include <windows.h>
#include <pt_ioctl.c>
int main()
{
OpenPortTalk();
for(int i = 0; i < 10; i++)
{
outportb(0x378, 0x01);
Sleep(1000);
outportb(0x378, 0x00);
Sleep(1000);
}
ClosePortTalk();
return 0;
}
این برنامه از یه حلقه ی 10 تایی تشکیل شده که باعث میشه تو هر بار اجرای برنامه LED متصل به پایه ی 2 از پورت پرینتر برای مدت 1 ثانیه روشن و بعد خاموش بشه.
برای اینکه نتیجه ی کار رو مشاهده کنید از پایه ی دوم پرینتر یک خروجی بگیرید و به یک مقاومت 470 اهم بدید. از پایه ی دیگه ی مقاومت به پایه ی مثبت LED وصل کرده و در نهایت پایه ی منفی LED رو به یکی از پایه های منفی پورت وصل کنید. حالا برنامه رو اجرا کنید.
موفق باشید.
alireza643
دوشنبه 29 مرداد 1386, 08:31 صبح
باید خروجی را مستقیم از پشت کیس بگیریم یا از کابل پرینتر
تفاوتی وجود نداره فقط اگر از پشت کامپیوتر بگیرید و دسترسی به پشت کامپیوتر مشکل باشه شما کمی دچار مشکل میشید.
پایه دوم کدوم یکی هست اگه یه عکس از پورت بزارید و دومین پایه را مشخص کنید خیلی عالی میشه
روی تمام پایه های پورت شماره وجود داره ولی برای پورتی اگر شماره نداشت پورت دو ردیف سوراخ داره که ردیف بالا شامل 13 سوراخ هست. اگر پورت رو طوری در نظر بگیرید که ردیف 13 سوراخی رو با بالا باشه و پایه ها رو از راست بشمارید این طوری دومین سوراخ ردیف بالا پایه ی شماره 2 میشه.برای قرار دادن عکس هم الان من تو یه سفر کاری هستم که این مطالب رو مینویسم و شرایط تهیه عکس ندارم ولی در اولین فرصت چشم.
میشه ی توضیح در مورد اینکه چرا ما مقاومت 470 اهمی میزاریم بدین
همونطور که میدونید پایه های پورت ولتاژ 5 ولتی دارن و وقتی فقط LED قرار میدید این کار باعث میشه جریان شدیدی تو مدار ما به وجود بیاد که این میتونه به پورت و قطعات الکترونیکی صدمه بزنه برای همین یه مقاومت قرار میدیم تا جریان رو کنترل کنیم. یه بار بدون مقاوت مدار رو ببندید ببینید که LED بنده خدا چقدر نورانی میشه. :چشمک:
یه توضیح دیگه در مورد این کد هم اگه بزارید عالی میشه
outportb(0x378, 0x01);
Sleep(1000);
outportb(0x378, 0x00);
Sleep(1000);
خط اول برنامه عدد 1 رو به بایت اطلاعات پورت موازی ارسال میکنه و اگر این عدد رو به مبنای باینری ببریم میشه 00000001 و این باعث میشه پایه ی شماره 2 برابر با 1 و بقیه پایه ها صفر بشن و LED روشن بشه.
در خط دوم برنامه برای 1 ثانیه توقف میکنه.
در خط سوم مقدار صفر به پورت ارسال میشه و این باعث میشه LED خاموش بشه و خط چهارم هم مثل خط دوم عمل میکنه.
به این شکل اول LED روشن میشه 1 ثانیه روشن میمونه بعد خاموش میشه و یک ثانیه خاموش میمونه و این کار رو 10 بار تکرار میکنه.
alireza643
یک شنبه 11 شهریور 1386, 14:16 عصر
سلام
از اینکه یه چند وقتی مطلب نداشتیم شرمنده. برای امروز یه برنامه میگذارم که به وسیله ی اون میشه جهت چرخش StepMotor رو کنترل کرد.
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#include <windows.h>
#include <pt_ioctl.c>
//---------------------------------------------------------------------------
int main()
{
char ch;
const double DlayVal=1;
OpenPortTalk();
outportb(0x378,0x00);
cout<<"L = Left , R = Right , The Others = Close"<<endl;
ch = getch();
for (;;)
{
if (kbhit())
ch = getch();
if (ch == 'r' || ch == 'R')
{
outportb(0x378,0x01);
Sleep(DlayVal);
outportb(0x378,0x02);
Sleep(DlayVal);
outportb(0x378,0x04);
Sleep(DlayVal);
outportb(0x378,0x08);
Sleep(DlayVal);
}
else if (ch == 'l' || ch == 'L')
{
outportb(0x378,0x08);
Sleep(DlayVal);
outportb(0x378,0x04);
Sleep(DlayVal);
outportb(0x378,0x02);
Sleep(DlayVal);
outportb(0x378,0x01);
Sleep(DlayVal);
}
else
break;
}
ClosePortTalk();
return 0;
}
//---------------------------------------------------------------------------
برنامه به این شکل کار میکنه که تو یه حلقه بی نهایت قرار میگره حالا اگر کلید r زده بشه موتور به سمت راست و اگر L زده بشه به سمت چپ میچرخه. سرعت چرخش موتور رو هم به وسیله ی DlayVal میشه کنترل کرد.
استپ موتور به پایه های 2و3و4و5 وصل میشه. البته موتور رو نباید به صورت مستقیم وصل کرد. برای آزمایش مدار به پایه های ذکر شده 4 تا LED وصل کنید که LED ها به ترتیب روشن میشه.
مدار اتصال موتور به کامپیوتر رو هم دارم عکس هاش رو آماده میکنم به محض آماده شدن رو سایت قرار میدم تا به جای LED موتور رو به کامپیوتر وصل کنید.
موفق باشید.
alireza643
چهارشنبه 21 شهریور 1386, 08:25 صبح
یه برنامه با C#.net2005 نوشتم که با کلیک button1 داده های موجود در پورت سری رو می خونه ( از کنترل SerialPort استفاده کردم. ) حالا مشکل من اینه که می خوام این button رو حذف کنم و به محض اینکه داده ای روی پورت سریال قرار گرفت ( از سخت افزاری که یه سری داده به این پورت ارسال می کنه ) اون داده ها رو بخونه و پردازش کنه. برای اینکار میشه یه وقفه تعریف کرد که به محض قرار گرفتن داده جدید روی پورت فراخوانی بشه؟ من می خواستم از وقفه تایمر استفاده کنم اما چون سخت افزار بطور منظم داده ارسال نمی کنه فایده ای نداشت.
من با این کنترل کار نکردم ولی نگاه که میکردم یه خاصیت داشت به اسم Hand shaking که به این صورته دستگاه وقتی میخاد مقداری ارسال کنه یه بیت رو یک میکنه وقتی اون بیت یک شد شما متوجه میشی دستگاه چیزی برای ارسال داره و شما هم یه بیت دیگه رو یک میکنی و دستگاه متوجه میشه شما آماده خوندن اطلاعات هستی و شروع به ارسال میکنه بعد که کار تموم شد هم شما و هم دستگاه بیت ها رو صفر میکنید و منتظر میمونید تا دوباره این بیت ها یک بشه.
در ضمن این کنترلی که شما استفاده کردی یه event داره به اسم DataReceived که با دریافت اطلاعات جدید فعال میشه فکر کنم به جای استفاده از تایمر اگر قسمتی از برنامه که میخواهید با دریافت اطلاعات فعال بشه تو این event قرار بدید دیگه نیازی به ستفاده از وقفه و تایمر نباشه.
شما یه شماره IC میکرو AVR نمی شناسید که دوتا پورت سری و یه پورتUSB داشته باشه؟
میکرو که من با اون کار میکنم 4 تا پورت داره که میشه به عنوان ورودی و خروجی از اون استفاده کرد. اگر منظور شما از این سوال اینه که میکرو یی باشه که مثل کامپیوتر پورت USB داشته باشه باید بگم تا جایی که بنده خبر دارم همچین AVR وجود نداره و اگر بخواهید ورودی رو به USB بدید یا از اون خروجی بگیرید باید زحمت کار رو خودتون بکشید.
موفق باشید.
alireza643
یک شنبه 01 مهر 1386, 09:43 صبح
ویندوز من XP و کامپایلرم VC++.NET هستش . من یه پروژه جدید ساختم و فایل PortTalk_IOCTL.h و pt_ioctl.c رو بهش اضافه کردم . یعنی یه هدر ساختم و محتویات PortTalk_IOCTL.h رو توش کپی کردم و یه فایل cpp که محتویات pt_ioctl.c رو توش کپی کردم ( یکی از ابهاماتم اینجاست . مگه کامپالر ما برای ++C نیست چطور فایل با پسوند C رو می تونه کامپایل کنه ؟! ) اگر چه پسوند رو می شه از cpp به c تغییر داد ولی به نظر خودم ایراد داره ...
بعد کامپایل می کنم و 96 تا ارور می ده !
نیازی به کپی فایل ها در فایل جدید نبود فقط کافی بود که این دو تا فایل رو کنار برنامه خودتون قرار بدید و بعد pt_ioctl.c رو تو قسمت includ ها اضافه کنید.
کامپایلر ما C++ هست ولی اگر توجه کنید خودش یکی از بچه های c حساب میشه که یه سری امکانات جدید بهش اضافه شده و به علاوه همون توانایی های c رو هم داره. این مثل مبحث ارث بری تو OOP هست. نیازی به تغییر پسوند نیست.
این ارور ها مربوط به Printfهست که تو Builder وجود ندارن ولی تو VC این مشکل هست یه کم باهدر ها کار کنید درست میشه یا اینکه تمام دستورات Printf رو کامنت کنید.
خوب حالا کمی در مورد کار خودم می گم . من برنامه نویسی بازی رو شروع کردم و در این حین به فکر ساخت یه تفنگ افتادم . کلیت کار تو ذهنمه و به نظر خودم عملیه . وقتی تفنگ شلیک می شه مقدار نور دریافتی به مقاومت نوری اندازه گیری می شه و توسط مدار الکترونیکی این کمی نور یا زیادی نور رو به صورت وصل یا قطع یک رله اعلام می کنه حالا من می خوام وصل یا قطع بودن رله رو به کامپیوتر اعلام کنم .
این کار خوبیه ولی یه مشکل داره:
شما با تغییر نور تو مقدار مقاومت متغیرتون تغییر حاصل میشه و تو برنامه با رسیدن مقدار نور به حد خاصی رله قطع یا وصل میشه تا اینجا همه چیز درسته ولی مشکل از اینجا شروع میشه که جایی که شما میخواهید بازی کنید باید نورش رو کنترل کنید چون اگر نور از یه حدی بیشتر باشه رله شما یه ضرب وصل میشه و دیگه نیازی به شلیک نیست.
برای حل این مشکل یا باید مدار رو طوری بسازید که از نور محیط تاثیر نگیره که کار نسبتا مشکلیه یا اینکه از سنسور های دیگه ای استفاده کنید.
موفق باشید
MOJTABA AR
چهارشنبه 11 مهر 1386, 15:04 عصر
از تاپئک اقائ علئرضا 643 تشکر مئکنم
alireza643
یک شنبه 15 مهر 1386, 09:33 صبح
من می خواهم با asp.net یا #c برنامه بنویسم که به پورت پارالل داده بدهد و داده دریافت کند.
آیا باز هم باید از یک فایل dll استفاده کنم؟در صورتی که باید استفاده شود دلیل استفاده از فایل dll را در این پروژه توضیح دهید.
من خودم تجربه ای تو کار کردن با سخت افزار به کمک asp.net یا #c ندارم ولی تا جایی که میدونم شما اجازه دسترسی به این پورت رو به طور مستقیم ندارید و ناچار به استفاده از DLL هستید. البته اگر با پورت سریال کار کنید از کامپوننت خود #c میتونید استفاده کنید.
بیشتر از این درباره C# اطلاعی ندارم و این سوال رو بچه هایی که .net کار هستن بهتر جواب میدن.
alireza643
یک شنبه 15 مهر 1386, 09:37 صبح
سلام
ببخشید اگر دیر شد.
فایل ضمیمه شامل نقشه مدار برای کار با استپ موتور هست. برای بستن مدار به نکات زیر توجه کنید.
موتوری که من در نظر گرفتم 5 ولتی بود ولی اگر موتور با ولتاژهای بالا تر هم استفاده کنید فقط باید به جای
منبع 5 ولیتی از منبع با ولتاژ بالاتر استفاده کنید.
ممکنه استپ موتور 6 تا خروجی داشته باشه که در این صورت خروجی 5 و 6 با هم به قطب منفی وصل میشن.
موقع خرید استپ موتور حتما از فروشنده بخواهید که ترتیب پایه ها رو به شما بگه. اگر نه برای پیدا کردن پایه ها
هم یه مرحله عظیم پیش رو داریم.
برای اطلاعات بیشتر درباده استپ موتور و دیگر قطعات اگر به سایت www.ir-micro.com سری بزنید اطلاعات خوبی در قالب مقالات کوتاه به دست میارید.
موفق باشید.
EMANOEL
پنج شنبه 26 مهر 1386, 21:36 عصر
ایا درایوری داریم که پورت usb رو به موازی تبدیل کنه
alireza643
چهارشنبه 02 آبان 1386, 13:33 عصر
سلام
ببخشید دیر شد.
ایا درایوری داریم که پورت usb رو به موازی تبدیل کنه
تو بازار اگر بگردید مدار تبدیل پورت ها رو به هم پیدا میکنید.
ساخت این مدارات هم کار چندان پیچیده ای نیست. به کمک میکروکنترلر های موجود تو بازار و چند روز وقت گذاشتن خودتون میتونید بسازید.
موفق باشید
alireza643
چهارشنبه 02 آبان 1386, 13:53 عصر
سلام
فکر میکردم که این بحث یکی از مباحث جذاب باشه ولی طی این مدت این تاپیک اون عملکردی که من فکر میکردم رو نداشت. حالا اشکال از بحث بود(که بعید میدونم) یا اشکال از کار من نمیدونم.
در هر صورت یه همه پرسی به این تاپیک اضافه کردم که اگر به اون جواب بدید متشکر میشم.
فعلا تا تاریخ پایان همه پرسی :چشمک:
موفق باشید
roya joon
یک شنبه 06 آبان 1386, 14:48 عصر
salam mikhastam in sterpermotor ro to kelasemon ejra konam.be in madarri ke goftid aksesho mizarid to site niaz daram.va tarigheye amade kardanesham lotfan tozih bedid.mamnoon.
forie fori!!!!!!!!!!!!!!!!
amir_paia
جمعه 18 آبان 1386, 19:34 عصر
اگه میشه لطف کنید و توضیحاتی هم در مورد پورت USB بدید. البته فکر می کنم که کار با پورت USB سخت تره ولی اگه اطلاعات مختصری هم بدید مفیده.
masoud_ccc
چهارشنبه 23 آبان 1386, 13:10 عصر
من نسخه c++ for dos را امتحان کردم جواب نداد.بعدش هم وقتی led را وصل پورت پرینتر میکنم بدون اینکه برنامه را اجرا کنم led روشن باقی میمونه ممنون میشم راهنمایی کنی.
Alireza Orumand
شنبه 26 آبان 1386, 08:47 صبح
salam mikhastam in sterpermotor ro to kelasemon ejra konam.be in madarri ke goftid aksesho mizarid to site niaz daram.va tarigheye amade kardanesham lotfan tozih bedid.mamnoon.
forie fori
عکس این مدار تو همین صفحه وجود داره. اولین پست رو اگر دقت میکردید تصویر ضمیمه نقشه مدار هست.
من نسخه c++ for dos را امتحان کردم جواب نداد.
نکته اول اینکه خوب با یه جدیدش امتحان کن. و نکته دوم هم اینکه اگر میشه بفرمایید منظورتون از جواب نداد چیه؟ اگر دقیق بفرمایید بهتر میشه راهنمایی کرد.
بعدش هم وقتی led را وصل پورت پرینتر میکنم بدون اینکه برنامه را اجرا کنم led روشن باقی میمونه ممنون میشم راهنمایی کنی.
به طور پیش فرض خروجی های این پورت با 1 ست شدن و برای همین اگر LED وصل کنید روشن میشه اگر بخواهید خاموش بشه باید مقدار خروی ها رو به وسیله ی برنامه صفر کنید.
نکته: این آقای Alireza643 که از دوستان و بستگان من میشه در حال حاضر مشغول به گذراندن دوره خدمت زیر پرچم هست. برای همین تا بازگشت افتخار آفرین این عزیز من در حد توان به سوالات این بخش جواب میدم.
موفق و سربلند باشید.
roya joon
شنبه 26 آبان 1386, 11:53 صبح
salam parname enteghale file az tarighe port ro bahamin port talk mishe baram befrestid? mamnoon foriiiiiieee
masoud_ccc
سه شنبه 29 آبان 1386, 17:48 عصر
سلام
من نسخه Turbo C++ 3.0 DOS استفاده کردم که فکر میکنم آخرین ورزن این نسخه باشد.که در این نسخه فایلهای هدر windows.h winioctl.h ندارد و فیل هدر PortTalk_IOCTL.h را نمیتواند باز کند.
اما در این نسخه تابع outportb در فایل هدر dos.h داریم.که من بااستفاده از این تابع برنامه زیر را نوشتم برنامه اجرا شد ولی led چشمک نزد.اگر برایتان امکان دارد برنامه زیر را برای من اصلاح کنید.
#include <stdio.h>
#include <dos.h>
int main(void)
{
for(int i = 0; i < 10; i++)
{
outportb(0x378, 0x01);
delay(100);
outportb(0x378, 0x00);
delay(100);
}
return 0;
}
Alireza Orumand
چهارشنبه 30 آبان 1386, 09:26 صبح
masoud جان درسته که این توابع توی این سرفایل ها وجود داره ولی یادتون باشه شما دارید تو ویندوز برنامه مینویسید ولی این سرفایل مال زمانه داسه و تو داس اجازه دسترسی مستقیم به پورت ها گرفته نشده بود. به هر حال شما میخواهید برنامه رو تو ویندوز اجرا کنید و برای دسترسی به پورت هم باید به یکی از روش هایی که گفته شد عمل کنید.
شرمنده از اینکه تنها کمکمی که میتونم به شما بکنم اینه که بگم از کامپایلر جدید تری استفاده کنید که این سرفایل رو داشته باشه.
راستی میشه بگید مشکلتون چی هست که از کامپایلر های قدیمی استفاده میکنید؟
masoud_ccc
پنج شنبه 01 آذر 1386, 06:50 صبح
alireza سلام
من از این کامپایلر استفاده به دلیل اینکه فقط با همین نسخه کار کردم و فکر میکنم خیلی هم قدیمی نباشه چون در دانشگاها همین کامپایلر تدریس میشود.
آیا خودتان توانسته اید پورتها خروجی بگیرید؟ اگه توانستید نام کامل نسخه ای که استفاده کرده اید را بنویسید تا هم من استفاده کنم هم دیگران.
thanks
Alireza Orumand
پنج شنبه 01 آذر 1386, 11:27 صبح
سلام
با اجازه ی شما چون من کارم این هست مجبورم که بتونم از پورت ها خروجی بگیرم. قبلا از کامپایلر بورلند نسخه ی 6 تا 2006 استفاده میکردم و الان هم که نسخه ی 2007 اومده که با اون هم کار کردم و هیچ مشکلی وجود نداشت.
با کامپایل ویژوال سی 6 هم بدون مشکل کار کردم.
فکر نمیکنم که مشکلی داشته باشه.
اگر میتونی از این نسخه ها استفاده کن. اگر برای تهیه ی نسخه ی مناسب مشکلی دارید و در صورتی که تهران هستید به من بگید هر کدوم از این کامپایلر ها رو که تمایل داشتید من در اختیار شما میگذارم.
موفق باشید.
Alireza Orumand
پنج شنبه 08 آذر 1386, 15:13 عصر
سلام
مطالب مربوط به برنامه نویسی برای پورت موازی به طور کامل در قالب یک فایل PDF در بخش مقالات سایت قرار داده شد.
http://barnamenevis.org/forum/showthread.php?t=86247
از این به بعد به امید خدا یک پورت جدید رو شروع میکنیم. اگر پیشنهادی برای ادامه کار دارید بفرمایید در غیر این صورت مطلب بعدی درباره پورت های سریال خواهد بود.
موفق باشید.
Master.
یک شنبه 11 آذر 1386, 18:58 عصر
دوستان سلام .. بحث جالبیه
اما امکان داره کسی بگه این امکان وجود داره که محدودیت های ویندوز برداشته بشه و بشه بصورت مستقیم با پورتها ارتباط برقرار کرد ؟
من میدونم که همون کامپایلر توربور سی تحت محیط 16 بیتی داس شبیه سازی میشه .. اما با این تفاسیر امکانش هست ؟ آ
AMIN1357
دوشنبه 12 آذر 1386, 08:58 صبح
با تشکر من مداری که قبلا گذاشتید بستم ولی کارنمی کند اگه می تونی توضیحات کاملتری بده من ازاستپ موتورsanyo denki 103h546-0770 شش سیم استفاده می کنم.
Alireza Orumand
دوشنبه 12 آذر 1386, 10:19 صبح
سلام
اما امکان داره کسی بگه این امکان وجود داره که محدودیت های ویندوز برداشته بشه و بشه بصورت مستقیم با پورتها ارتباط برقرار کرد ؟
اگر قرار بود این محدودیت برداشته بشه خوب از اول ایجاد نمیشد. برای دسترسی به پورت های سری نیازی به این DLLها و برنامه های کمکی ندارید و به کمک readfile,writefiel میتونید با این پورت ها ارتباط برقرار کنید که در این صورت بسیاری از درد سر هایی که این برنامه به جای شما با اون ها درگیر بودن به عهده ی خود شما میوفته.
با تشکر من مداری که قبلا گذاشتید بستم ولی کارنمی کند اگه می تونی توضیحات کاملتری بده من ازاستپ موتورsanyo denki 103h546-0770 شش سیم استفاده می کنم.
مدار تست شده و کار میکنه. مشکل به وجودآمده در نحوه ی اتصال موتور هست. برای تست مدار از LED استفاده کنید.
برای رفع مشکل با استپ موتور هم اگر موارد زیر رو در نظر بگیرید انشاالـ... که مشکل حل میشه.
اول اینکه موتور شما چون 6 سیمه هست 2 تا سیم صفر داره که احتمال 99.99% همرنگ هستن و این دوتا سیم باید با هم به سیم صفر بسته بشن.
ترتیب جریان دادن به پایه های موتور هم خیلی مهمه که اگر درست رعایت نشه موتور نمیچرخه. از روی نقشه ی موتور پایه های 1 تا چهار رو پیدا کنید و به ترتیب به سیم های 1 تا چهار وصل کنید.
اگر نقشه ای در اختیار ندارید باید با آزمایش پایه ها رو پیدا کنید.
اول به آهستگی موتور رو با دست بچرخونید تا از میزان حرکت موتور به ازای هر پله دقیق آگاه بشید.
به این شکل که پایه های منفی رو به سیم صفر وصل کنید.
یکی از پایه ها رو صفر در نظر بگیرید و به اون برق وصل کنید موتور در یک جهت میچرخه. حالا یکی دیگه از سه سیم باقی مونده رو انتخاب کنید و به اون برق بدید اگر موتور به اندازه حرکت یک پله و در جهت قبل چرخید این پایه میشه پایه ی 2 اگر نه باید درباره دوتا پایه ی باقی مونده امتحان کنید. این کار رو ادامه بدید تا ترتیب هر چهار پایه مشخص بشه.
به خاطر اینکه سایت برنامه نویس هست از توضیح بیشتر در این مورد معضورم. در صورت مشکل به مقالات و کتاب های مرتبط مراجعه کنید.
موفق باشید.
aloneinc
دوشنبه 12 آذر 1386, 19:22 عصر
با سلام
دوستان دیدم بحث سخت افزار هست بنده یه سوالی داشتم منو ببخشید اگه کمی بی ربط هست البته نه کاملا
من AVR رو میگزرونم البته با زبان بیسیک .
دوست دارم برم سراغ c که کامپایلری که معمولا ازش استفاده میکنن کد ویژن هست .
میخواستم بدونم دوستانی که کار کردن با کد ویژن چه نواقصی داره و چه منافعی .
آیا کامپایلری دیگری پیشنهاد میکنید برای این کار ؟
سوال دیگرم در مورد مرجه خوب برای کد ویژن هست ممنون میشم منو راهنمایی کنید .
Alireza Orumand
سه شنبه 13 آذر 1386, 17:54 عصر
سلام
دوستان دیدم بحث سخت افزار هست بنده یه سوالی داشتم منو ببخشید اگه کمی بی ربط هست البته نه کاملا
من AVR رو میگزرونم البته با زبان بیسیک .
دوست دارم برم سراغ c که کامپایلری که معمولا ازش استفاده میکنن کد ویژن هست .
میخواستم بدونم دوستانی که کار کردن با کد ویژن چه نواقصی داره و چه منافعی .
آیا کامپایلری دیگری پیشنهاد میکنید برای این کار ؟
سوال دیگرم در مورد مرجه خوب برای کد ویژن هست ممنون میشم منو راهنمایی کنید .
سوال شما مربوط به برنام نویسی embeded میشه که تو سایت یه بخش برای این مورد داریم. سوال خودتون رو http://barnamenevis.org/forum/forumdisplay.php?f=119 مطرح کنید تا اساتید این کار جواب شما رو بدن
موفق باشید
ab1234
شنبه 27 بهمن 1386, 21:10 عصر
Help me PLZ
سلام دوستان خسته نباشید
من می خوام برنامه نویسی پورت ها رو یاد بگیرم .... به شدت نیاز دارم
اول باید پورت ها رو بشناسم بعد بتونم دیتا رو به پورت ها بفرستم و از پورت بخونم.....
اگه ممکنه کمکم کنید من در این زمینه اطلاعات زیادی ندارم
واقا ممنونم
Alireza Orumand
یک شنبه 19 اسفند 1386, 12:45 عصر
سلام
دوست عزیز اگر بفرمایید کجای کار مشکل دارید بهتر میشه راهنمایی کرد.
اگر کتاب درباره پورت ها میخواهید که بفرمایید که معرفی کنیم. اگر هم برای شروع کار مشکل دارید که فکر کنم از همین مقاله استفاده نمایید و سوالات خودتون رو مطرح کنید که اگر تونستیم جواب بدیم.
موفق باشید.
mohammad moradi
دوشنبه 16 اردیبهشت 1387, 18:53 عصر
اگه مشه در مورد ارتباط با usbدر زبان c منو راهنمایی کنید
123456za
جمعه 20 اردیبهشت 1387, 08:39 صبح
سلام
یک نمونه پروژه با سورس کامل برای ارتباط با پورت usb
که برنامه کامپیوتر اون با c++builder6 هست و برنامه میکرو اون با c و win avr هست
اینم بگم اتصال میکروavr (at,ega8( به صورت مستقیم هست و این نمونه یک دماسنج هست که دمای محیط رو اندازه می گیره و روی پورت usb می فرسته و روی pc به نمایش در می یاد
http://kavirkit.com/kavir/2007/picsit/tempusbv1.1.jpg
http://kavirelectronic.ir/fa/modules.php?name=Content&pa=showpage&pid=3
منبع:کویرالکترونیک
MTBMuSiC
یک شنبه 22 اردیبهشت 1387, 13:24 عصر
http://www.prosperityuniverse.com/images/RG_7.jpg
من از همگي تشكر مي كنم:اشتباه:
http://mtb4vb.blogfa.com
roya_143
سه شنبه 31 اردیبهشت 1387, 22:10 عصر
میشه به جای LED ومقاومت از یک لامپ استفاده کرد؟
rabbitwatcher
چهارشنبه 01 خرداد 1387, 21:30 عصر
با سلام
مي شه توضيح بديد در c++ به وسيله پورت USB چطور با يه پرينتر مي شه ارتباط برقرار كرد و مثلاْ وضعيت اون رو خوند؟يا بهش رشته رو براي چاپ فرستاد؟
اصلاْ اين كار شدني هست؟راحته يا سخته؟
kernel
چهارشنبه 15 خرداد 1387, 10:57 صبح
پیشنهاد میکنم به بچها که برای کار با سخت افزار اول برن میکرو کنترلر یاد بگیرن .
میکرو کنترلر یه ای سی کوچیکه که پایه های اونو به صورت 8 تایی به اسم پورت می شناسیم
میکرو داخل خودش یک پروسسور و چند نوع حافظه مختلف داره که شما می تونین برنامتون رو به زبان های
پاسکال - C و بیسیک بنویسید و بعد از کامپایل داخل میکرو کپی کنید و بعد با اتصال میکرو به کامپیوتر می تونین با فرمان هایی که خودتون براش تعریف کردین وسائل مختلف رو باهاش کنترل کنین .
البته میکرو حتما نیازی به کامپیوتر نداره و خودش هم میتونه کلی کارا رو انجام بده.
در مورد پورتها هم باید بگم بین سریال و پارالل ، سریال برای کار بهتره چون خطر اسیب رسوندن به مادربورد کمتر میشه ولی در کل هردوی اینها دیگه قدیمی شدن و تو مادربورد های جدید اثری ازشون نیست پس بهتره برای ارتباط با سخت افزارهایی که خودمون میسازیم از USB استفاده کنیم که کلی برتری نسبت به هردو پورت قبلی داره .
من تا بحال 9 تا روبوت ساختم که 7 تا از اونا با میکرو کنترل می شد ( به تنهایی ).
تو روبات 8 چون از تکنیک های پردازش تصویر استفاده کردم یک ارتباط با کامپیوتر هم به صورت wireless درست کردم که به پورت سریال متصل می شد.
تو روبات آخری هم که ساختم از پورت USB برای اتصال به کامپیوتر استفاده کردم در ضمن این آخریه قابلیت اتصال و کنترل از طریق اینترنت هم داره
اگه چیز دیگه ای برای سوال دارین من با اطلاعات اندک خود میتونم راهنمایی تون بکنم
kernel
چهارشنبه 15 خرداد 1387, 11:30 صبح
با سلام
مي شه توضيح بديد در c++ به وسيله پورت USB چطور با يه پرينتر مي شه ارتباط برقرار كرد و مثلاْ وضعيت اون رو خوند؟يا بهش رشته رو براي چاپ فرستاد؟
اصلاْ اين كار شدني هست؟راحته يا سخته؟
در مورد سوال شما باید بگم ارتباط با سخت افزار با ارتباط با پرینتر تفاوت داره ، چون هر سخت افزاری که میسازیم طبق نیاز و نوع طراحی خودمون درایورش رو می سازیم و با اون ارتباط بر قرار می کنیم و این یک مسئاله شخصی برای خودمان است ، اما پرینتر ! تصور کنید شما که برنامه نویس هستید میخواهید در برنامه تان یک صفحه گزارش را پرینت بگیرید ، پس شما مجبورید که با پرینتر خود با استفاده از پورت ارتباط بر قرار کنید بنابر این لازم است تا با دستورات داخلی پرینتر خود ارتباط بر قرار کنید و هدها و موتورها و .... ر ا کنترل کنید . اما اینجا یک مشکل وجود دارد و آن اینکه تعداد بسیار زیادی شرکت در دنیا مشغول ساخت پرینتر می باشند و هر کدام از این دستگاهها معماری سخت افزاری خاص خود را دارند ! ایا شما به عنوان برنامه نویس باید کار با تمام پرینترهای دنیا را بلد باشید ؟
قطعا اینطور نیست!
در واقع امکان چاپ و ارتباط با انواع چاگر یک امکان در سیستم عامل میباشد و شما تنها به استفاده از این امکانات می پردازید ، و بقیه ماجرا و ارتباط سیستم با پرینتر به عهده سیستم عامل می باشد!
mahdi20072008
یک شنبه 02 تیر 1387, 19:48 عصر
با سلام
از تایپیکی که زدید خیلی متشکرم ...
انشاءالله ادامه داشته باشد ما که استفاده کردیم.
mhp2000
چهارشنبه 01 آبان 1387, 06:54 صبح
سلام
این تاپیک چرا غیر فعال است.
من میخواستم بدانم که چگونه میتوانم پورت com را در c راه اندازی کنم و از آن استفاده کنم.
hamid108
چهارشنبه 01 آبان 1387, 15:30 عصر
با سلام و خسته نباشید. میخواستم یک pdf کامل در مورد cpp برای دانلود بزارید. خیلی ممنون.
alireza_ap
یک شنبه 05 آبان 1387, 12:38 عصر
با سلام
من می خوام از طریق پورت پرینتر بیت های 0 و 1 را به کامپیوتر بدم، بعد نسبت به کد ورودی ، در کامپیوتر اونها را شناسایی کنم و در در قبال هر کد یک برنامه در کامپیوتر اجرا بشه
کسی می تونه به من کمک کنه؟ با چه برنامه ای بهتر هست این کار رو انجام بدم؟ چه چیزی لازم دارم؟
با تشکر
masoud_pnu
دوشنبه 06 آبان 1387, 15:05 عصر
با سلام. من هم در تصدیق صحبت های kernel عزیز توصیه می کنم کار با میکرو کنترلرها بخصوص AVR رو یاد بگیرید. البته رشته من نرم افزار هست. اما در کار با میکرو ها آدم با مسایلی برمی خوره که واقعا جالبه.
alireza_ap
سه شنبه 07 آبان 1387, 10:17 صبح
کسی پاسخ به من نمی ده؟
اقا مسعود، من هم نرم افزار خوندم
با برنامه نویسی های مختلف کار کردم اما معمولا نیاز به کار با پورت نداشتم
من می خوام از طریق پورت پرینتر بیت های 0 و 1 را به کامپیوتر بدم، بعد نسبت به کد ورودی ، در کامپیوتر اونها را شناسایی کنم و در در قبال هر کد یک برنامه در کامپیوتر اجرا بشه
پیشنهاد شما چیه و از چه روشی استفاده کنم؟ منبع هم اگه هست معرفی کنید لطفا
ممنون
arvant
دوشنبه 13 آبان 1387, 19:42 عصر
سلام
میخواستم اگه کسی میتونه در مورد کار با فلش مموری های که با یو اس بی به سیستم وصل میشن کمم کنه
میخوام به تک تک خانه های حافظه توی این نوع حافظه ها دسترسی داشته باشم.و بتونم مستقیما" توش چیز بنویسم.
محمدامین شریفی
چهارشنبه 06 آذر 1387, 17:24 عصر
http://barnamenevis.org/forum/showthread.php?t=110663
مسعود عبدالله زاده
پنج شنبه 19 دی 1387, 11:44 صبح
لطفا اگر میتوانید برنامه چراغ چشمک زن را با زبان c برای من ارائه دهیید. فقط با زبان c
مسعود عبدالله زاده
پنج شنبه 19 دی 1387, 13:40 عصر
[quote=Alireza Orumand;423614]masoud جان درسته که این توابع توی این سرفایل ها وجود داره ولی یادتون باشه شما دارید تو ویندوز برنامه مینویسید ولی این سرفایل مال زمانه داسه و تو داس اجازه دسترسی مستقیم به پورت ها گرفته نشده بود. به هر حال شما میخواهید برنامه رو تو ویندوز اجرا کنید و برای دسترسی به پورت هم باید به یکی از روش هایی که گفته شد عمل کنید.
شرمنده از اینکه تنها کمکمی که میتونم به شما بکنم اینه که بگم از کامپایلر جدید تری استفاده کنید که این سرفایل رو داشته باشه.
راستی میشه بگید مشکلتون چی هست که از کامپایلر های قدیمی استفاده میکنید؟
این یک پروژه که باید با c بنویسم . اگه ویندوز 98 باشه میتونیم برنامه رابا c اجرا کرد وجواب گرفت
mostafay
چهارشنبه 02 بهمن 1387, 14:52 عصر
سلام
برای ارسال اطلاعات روی پورت سریال هم راهنمایی کنید . ممنون.
S@LLy_Sen@tor
پنج شنبه 03 بهمن 1387, 14:22 عصر
من تا بحال 9 تا روبوت ساختم که 7 تا از اونا با میکرو کنترل می شد ( به تنهایی ).
تو روبات 8 چون از تکنیک های پردازش تصویر استفاده کردم یک ارتباط با کامپیوتر هم به صورت wireless درست کردم که به پورت سریال متصل می شد.
تو روبات آخری هم که ساختم از پورت USB برای اتصال به کامپیوتر استفاده کردم در ضمن این آخریه قابلیت اتصال و کنترل از طریق اینترنت هم داره
اگه چیز دیگه ای برای سوال دارین من با اطلاعات اندک خود میتونم راهنمایی تون بکنم
سلام،
خوشحالم که بالاخره یه نفرو پیدا کردم که با میکرو کار کرده و ربات ساخته:لبخندساده::قلب:
در ضمن میخواد راهنمایی هم بکنه!:کف::لبخند:
من به تازگی عضو یه گروه ساخت روبات شدم :لبخندساده: در این گروه طبق معمول کارها تقسیم شده و متاسفانه وشاید هم خوشبختانه برنامه نویسی آن را به من دادن!:متفکر:
در حالی که من اصلا چیز زیادی در مورد پورت ها نمی دونم:ناراحت:
که با این تاپیک یه چیزایی دستگیرم شد:لبخندساده:(ممنون)
حالا از شما میخوام منو راهنمایی کنید،
تکنیک پردازش تصویر چیه؟!:خجالت:
چطوری میشه به صورت wireless به پورت سریال متصل شد؟(برنامه نویسیش چه جوریه؟):متفکر:
مانیتورینگ چیست؟
اطلاعاتی که از روبات گرفته میشه (ازطریق پورت) اگر بخواهیم به صورت گرافیکی باشد کدام نرم افزار را پیشنهاد میکنید؟
و....:گیج:
مرسی
S@LLy_Sen@tor
شنبه 05 بهمن 1387, 00:10 صبح
به پورت USb چه جوری میشه دسترسی پیدا کرد و از آن اطلاعات گرفت؟
کدام پورت برای کار با ربات بهتره؟سرعت بالاتری داره؟وکار باهاش راحت تره؟
Strange
دوشنبه 19 مرداد 1388, 03:02 صبح
با سلام
آقایون مثل این که این تاپیک تعطیل شده
شاید آقای Alireza Orumand هم رفتن خدمت زیر پرچم؟
nemati2004
دوشنبه 30 شهریور 1388, 14:10 عصر
سلام
من میخواهم از طریق ورودی Line in کارت صوتی سیگنال وارد کنم و پس از یک سری پردازش سیگنال را نمایش بدهم لطفا من را راهنمایی کنید.:متفکر:
nemati_nj2004@yahoo.com
farhad1222
پنج شنبه 02 مهر 1388, 04:13 صبح
سلام
من یک مدار میخوام که از طریق کامپیوتر و با پورت مواری بشه 3 موتور استپر رو کنترل کنه و شبیه cnc عمل کنه کسی می تونه کمک کنه....
farhad1222
پنج شنبه 02 مهر 1388, 04:24 صبح
سلام
ترانزیستورهای مدار چیه ؟
maverick313
شنبه 09 آبان 1388, 11:14 صبح
ممنون از لطفتون
mohsen_sir
شنبه 30 آبان 1388, 16:40 عصر
دوستان اگه تاپيك رو ادامه نميدين يه منبع خوب معرفي كنيد.
amirr66amirr66
پنج شنبه 03 دی 1388, 12:05 عصر
با سلام
خیلی ممنونم از فعالیت های دوستان در این زمینه
mabbaszadegan
دوشنبه 28 دی 1388, 00:13 صبح
سلام به دوستان عزیز ، البته یه کم با تاخیر :لبخند:
من تا حالا با سخت افزار کار نکردم ، میگم اگه موافقید این تاپیک رو ادامه بدیم ، به نظرم میتونه مفید باشه
فقط اگه ممکنه از سطح مبتدی شروع کنید تا منم بفهمم :لبخند:
منتظرما !!!!!
vahidbbb
سه شنبه 06 بهمن 1388, 09:35 صبح
دوست عزیز جناب علیرضا
لطف میکنید یه برنامه فراخوانی و خواندن و نوشتن روی پورت سری را بذاری
ممنون میشم
محمدامین شریفی
سه شنبه 06 بهمن 1388, 14:20 عصر
برنامه فراخوانی و خواندن و نوشتن روی پورت سری
این برنامه (http://sites.google.com/site/aminsharifi67site/home/project/serial-port/SerialPortTerminal.zip) را ببینید.
orkideh07
شنبه 10 بهمن 1388, 13:24 عصر
این برنامه (http://sites.google.com/site/aminsharifi67site/home/project/serial-port/SerialPortTerminal.zip) را ببینید.
این برنامه با C# هست ولی در c و C++ نمیشه اینطوری برنامه نوشت ...خیلی سخت تره!
خودم دارم روی یه برنامه واسه این کار میکنم ولی هنوز جواب 100% نداده وگرنه میذاشتمش
در همین راستا یه سوال داشتم من میخوام برنامه ای بنویسم که در حالت sleep باشه ( یعنی نمیخوام اینطوری باشه که مدام داخل یه لوپ بپرسم اتفاقی افتاده یا نه) و وقتی که وقفه ای از یه IRQ مشخص مثلا IRQ4 مربوط به Com1 اومد بره یه عملی رو انجام بده در حالت ساده اش یه متنی رو چاپ کنه ...فقط تاکید میکنم خیلی مهمه حالت busy waiting نباشه !کسی کمکی میتونه بکنه ؟
bidemajnoon
یک شنبه 16 اسفند 1388, 13:03 عصر
سلام
می خواستم بدونم که چجوری میشه به میکروفن خود سیستم وصل شد و از اون فریکانس گرفت؟
bidemajnoon
یک شنبه 05 اردیبهشت 1389, 12:05 عصر
سوال:
چه جوری می شه به میکروفن وصل شد و ازش اطلاعات صوتی گرفت؟
amin1softco
شنبه 19 تیر 1389, 09:09 صبح
سوال:
چه جوری می شه به میکروفن وصل شد و ازش اطلاعات صوتی گرفت؟
گرچه یکمی دیره اما این سورس رو ببین :
/************************************************** **************************
** WARNING: You need at least a COMPACT memory model to run this. **
************************************************** ***************************
** Demonstration of recording a WAV file through the Sound Blaster **
** by Steven H Don **
** **
** For questions, feel free to e-mail me. **
** **
** shd@earthling.net **
** http://shd.cjb.net **
** **
************************************************** **************************/
//Include files
#include "ALLOC.H"
#include "DOS.H"
#include "MEM.H"
#include "CONIO.H"
#include "STDIO.H"
#define CD 2
#define Microphone 4
#define LineIn 5
//The simplest header a WAV file can have is this:
struct SimpleHeader {
long RIFF;
long NextChunkSize;
long WAVE;
long fmt;
long fmtDataLength;
short WaveType;
short Channels;
long SampleRate;
long BytesPerSecond;
short BlockAlignment;
short BitResolution;
long data;
long SoundLength;
} Header;
char Key;
unsigned int WBuffer; //Write Buffer indicator
unsigned char *DMABuffer; //Pointer to DMA Buffer
unsigned int DMA; //The DMA channel
unsigned int IRQ; //The IRQ level
unsigned int Base; //Sound Blaster base address, Word
//Pointers to old interrupt routines
#ifdef __cplusplus
void interrupt (*OldIRQ)(...);
#else
void interrupt (*OldIRQ)();
#endif
FILE *WAVFile; //Handle of the WAV file}
long Recorded; //Amount of samples recorded}
/************************************************** **************************
** Checks to see if a Sound Blaster exists at a given address, returns **
** true if Sound Blaster found, false if not. **
************************************************** **************************/
int ResetDSP(unsigned int Test)
{
//Reset the DSP
outportb (Test + 0x6, 1);
delay(10);
outportb (Test + 0x6, 0);
delay(10);
//Check if (reset was succesfull
if (((inportb(Test + 0xE) & 0x80) == 0x80) && (inportb(Test + 0xA) == 0xAA))
{
//DSP was found
Base = Test;
return (1);
}
else
//No DSP was found
return (0);
}
/************************************************** **************************
** Send a byte to the DSP (Digital Signal Processor) on the Sound Blaster **
************************************************** **************************/
void WriteDSP(unsigned char Value)
{
//Wait for the DSP to be ready to accept data
while ((inportb(Base + 0xC) & 0x80) == 0x80);
//Send byte
outportb (Base + 0xC, Value);
}
/************************************************** **************************
** Writes a value to the SB's mixer chip **
************************************************** **************************/
void WriteMixer (unsigned char R, unsigned char V)
{
outportb (Base + 4, R);
outportb (Base + 5, V);
}
/************************************************** **************************
** Selects the source device for recording. **
** Valid values are: Microphone, CD and LineIn **
************************************************** **************************/
void SelectSource (char Source)
{
//For older SB's
WriteMixer (0xC, Source);
//For newer SB's
{
//Disable right channel
WriteMixer (0x3E, 0);
//Record all sound through left channel
switch (Source) {
case Microphone : WriteMixer (0x3D, 1); break;
case CD : WriteMixer (0x3D, 6); break;
case LineIn : WriteMixer (0x3D, 24); break;
}
//Set volume of whatever is recording to full
switch (Source) {
case Microphone : WriteMixer (0x0A, 7); break;
case CD : WriteMixer (0x28, 255); break;
case LineIn : WriteMixer (0x2E, 255); break;
}
//Allow line and CD to be heard through speakers, but not microphone}
switch (Source) {
case Microphone : WriteMixer (0x3C, 0); break;
case CD : WriteMixer (0x3C, 6); break;
case LineIn : WriteMixer (0x3C, 24); break;
}
}
}
/************************************************** **************************
** Asks the user for a filename and prepares that file for recording. **
************************************************** **************************/
void PrepareFile ()
{
char FileName [255];
//Ask the user for a file name
printf ("Please give filename : ");
scanf ("%s", FileName);
//Open the file for output
WAVFile = fopen (FileName, "wb");
//Save a dummy header
fwrite (&Header, sizeof(Header), 1, WAVFile);
}
/************************************************** **************************
** Starts recording. The DMA controller is programmed with a block length **
** of 32K - the entire buffer. The DSP is instructed to play blocks of 16K **
** and then generate an interrupt (which allows the program to save the **
** parts that have already been recorded) **
************************************************** **************************/
void StartRecording ()
{
long LinearAddress;
unsigned int Page, OffSet;
//Nothing recorded yet
Recorded = 0;
WriteDSP (0xD3); //DSP-command D1h - Disable speaker, required
//on older SB's
WriteDSP (0x40); //DSP-command 40h - Set sample frequency
WriteDSP (165); //Write time constant
/*
The time constant is calculated as follows:
(65536 - (256000000 / frequency)) >> 8
*/
//Convert pointer to linear address
LinearAddress = FP_SEG (DMABuffer);
LinearAddress = (LinearAddress << 4) + FP_OFF (DMABuffer);
Page = LinearAddress >> 16; //Calculate page
OffSet = LinearAddress & 0xFFFF; //Calculate offset in the page
outportb (0x0A, 4 | DMA); //Mask DMA channel
outportb (0x0C, 0); //Clear byte pointer
outportb (0x0B, 0x54 | DMA); //Set mode
/*
The mode consists of the following:
0x54 + x = binary 01 01 01 xx
| | | |
| | | +- DMA channel
| | +---- Write operation (the DSP writes to memory)
| +------- Auto init mode
+---------- Block mode
*/
outportb (DMA << 1, OffSet & 0xFF); //Write the offset to the DMA controller
outportb (DMA << 1, OffSet >> 8);
if (DMA == 0) outportb (0x87, Page);
if (DMA == 1) outportb (0x83, Page);
if (DMA == 3) outportb (0x82, Page);
outportb ((DMA << 1) + 1, 0xFF); //Set the block length to 0x7FFF = 32 Kbyte
outportb ((DMA << 1) + 1, 0x7F);
outportb (0x0A, DMA); //Unmask DMA channel
WriteDSP (0x48); //DSP-command 48h - Set block length
WriteDSP (0xFF); //Set the block length to 0x3FFF = 16 Kbyte
WriteDSP (0x3F);
WriteDSP (0x2C); //DSP-command 2Ch - Start auto-init playback
}
/************************************************** **************************
** Saves one half of the DMA buffer to the file **
************************************************** **************************/
void SaveBuffer (unsigned int Buffer)
{
fwrite (DMABuffer + (Buffer << 14), 16384, 1, WAVFile);
Recorded += 16384;
}
/************************************************** **************************
** Saves the final part of the buffer and finalizes the WAV file **
************************************************** **************************/
void EndRecording ()
{
unsigned int Counter, OffSet, DMAPointer;
//Stops DMA-transfer
WriteDSP (0xD0);
WriteDSP (0xDA);
//Read DMA pointer from DMA controller
DMAPointer = inportb (1 + (DMA >> 1));
DMAPointer += (inportb (1 + (DMA >> 1)) << 8);
/*
DMAPointer contains amount that remains to be played.
This is converted to the offset of the current sample
*/
OffSet = 0x7FFF - DMAPointer;
//Save the last bit
fwrite (DMABuffer + (OffSet & 16384),
OffSet & 16383,
1, WAVFile);
//The total amount recorded is now available
Recorded += OffSet & 16383;
//Save the actual header
Header.RIFF = 0x46464952; //"RIFF"
Header.NextChunkSize = Recorded + 36; //Size of the WAVE chunk
Header.WAVE = 0x45564157; //"WAVE"
Header.fmt = 0x20746D66; //"fmt "
Header.fmtDataLength = 16; //length of fmt chunk
Header.WaveType = 1; //Standard uncompressed WAV file
Header.Channels = 1; //Mono
Header.SampleRate = 11025; //11KHz
Header.BytesPerSecond = Header.Channels * Header.SampleRate;
Header.BlockAlignment = 1; //1 for 8bit, 2 for 16bit
Header.BitResolution = 8; //8bit WAV file
Header.data = 0x61746164; //"data"
Header.SoundLength = Recorded;
//Save the actual header
fseek (WAVFile, 0, SEEK_SET);
fwrite (&Header, sizeof(Header), 1, WAVFile);
fclose (WAVFile);
}
/************************************************** **************************
** IRQ service routine - this is called when the DSP has finished playing **
** a block **
************************************************** **************************/
#ifdef __cplusplus
void interrupt ServiceIRQ (...)
#else
void interrupt ServiceIRQ ()
#endif
{
//Relieve DSP
inportb (0x22E);
//Acknowledge hardware interrupt
outportb (0x20, 0x20);
//Acknowledge cascade interrupt for IRQ 2 and 10
if (IRQ == 2 || IRQ == 10) outportb (0xA0, 0x20);
//Save buffer
SaveBuffer (WBuffer);
//Toggle between write buffers
WBuffer ^= 1;
}
/************************************************** **************************
** This procedure allocates 32K of memory to the DMA buffer and makes sure **
** that no page boundary is crossed **
************************************************** **************************/
void AssignBuffer ()
{
char *TempBuf; //Temporary pointer
long LinearAddress;
unsigned int Page1, Page2; //Words
//Assign 32K of memory
TempBuf = (char *)malloc(32768);
//Calculate linear address
LinearAddress = FP_SEG (TempBuf);
LinearAddress = (LinearAddress << 4) + FP_OFF (TempBuf);
//Calculate page at start of buffer
Page1 = LinearAddress >> 16;
//Calculate page at end of buffer}
Page2 = (LinearAddress + 32767) >> 16;
//Check to see if a page boundary is crossed
if (Page1 != Page2) {
//If so, assign another part of memory to the buffer
DMABuffer = (char *)malloc(32768);
free (TempBuf);
} else //otherwise, use the part we've already allocated
DMABuffer = TempBuf;
memset (DMABuffer, 128, 0x7FFF);
}
void FindSB ()
{
int Temp;
//Check for Sound Blaster, address: ports 220, 230, 240, 250, 260 or 280
for (Temp = 1; Temp < 9; Temp++) {
if (Temp != 7)
if (ResetDSP (0x200 + (Temp << 4))) {
break;
}
}
if (Temp == 9) {
//or none at all
printf ("No Sound Blaster found\n");
return;
} else printf ("Sound Blaster found at %Xh\n", Base);
}
void InitIRQandDMA ()
{
printf ("Please specify DMA channel : "); scanf("%d", &DMA);
printf ("Please specify IRQ level : "); scanf("%d", &IRQ);
//Save old IRQ vector
if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
if (IRQ == 2) OldIRQ = getvect (0x71);
if (IRQ == 10) OldIRQ = getvect (0x72);
if (IRQ == 11) OldIRQ = getvect (0x73);
} else OldIRQ = getvect (8 + IRQ);
//Set new IRQ vector
if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
if (IRQ == 2) setvect (0x71, ServiceIRQ);
if (IRQ == 10) setvect (0x72, ServiceIRQ);
if (IRQ == 11) setvect (0x73, ServiceIRQ);
} else setvect (8 + IRQ, ServiceIRQ);
//Enable IRQ
if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
if (IRQ == 2) outportb (0xA1, inportb (0xA1) & 253);
if (IRQ == 10) outportb (0xA1, inportb (0xA1) & 251);
if (IRQ == 11) outportb (0xA1, inportb (0xA1) & 247);
outportb (0x21, inportb (0x21) & 251);
} else outportb (0x21, inportb (0x21) & !(1 << IRQ));
}
void ReleaseIRQandDMA ()
{
//Free interrupt vectors used to service IRQs
if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
if (IRQ == 2) setvect (0x71, OldIRQ);
if (IRQ == 10) setvect (0x72, OldIRQ);
if (IRQ == 11) setvect (0x73, OldIRQ);
} else setvect (8 + IRQ, OldIRQ);
//Mask IRQs
if (IRQ == 2 || IRQ == 10 || IRQ == 11) {
if (IRQ == 2) outportb (0xA1, inportb (0xA1) | 2);
if (IRQ == 10) outportb (0xA1, inportb (0xA1) | 4);
if (IRQ == 11) outportb (0xA1, inportb (0xA1) | 8);
outportb (0x21, inportb (0x21) | 4);
} else outportb (0x21, inportb (0x21) | (1 << IRQ));
}
void main ()
{
//Clear screen
clrscr ();
printf ("Demonstration of recording samples using DMA - by Steven Don\n");
printf ("------------------------------------------------------------\n");
//Look for the Sound Blaster
FindSB ();
//Assign memory to the DMA Buffer
AssignBuffer ();
//Set write buffer to first buffer
WBuffer = 0;
//Select microphone as the source
SelectSource (Microphone);
//Ask the user for a filename and prepare the file for output
PrepareFile ();
//Ask the user for IRQ and DMA channels
InitIRQandDMA ();
//Start playback
StartRecording ();
//Wait until escape is pressed
do; while (getch () != 27);
//End the recording
EndRecording ();
//Free the memory allocated to the sound buffer
free (DMABuffer);
//Release the IRQ and DMA channels
ReleaseIRQandDMA ();
}
rasoul67
سه شنبه 23 شهریور 1389, 17:31 عصر
سلام تو اين فايل ضميمه اي كه گاشتيد شماره ترانزيستورهاي منفي رو ننوشته ايد ميشه لطف كنيد شمارشونو بفرماييد و اينكه هر ترانزيستور منفي رو ميشه گذاشت؟
rasoul67
سه شنبه 23 شهریور 1389, 17:48 عصر
آقاي كرنل لطف كنيد اولا كمي در مورد پردازش تصوير توضيح بديد:عصبانی++:
ثانيا يه كمي هم در مورد اينكه وقتي بعد از اينكه ما يه ميكرو را مثلا در نرم افزار codevision برنامه ريزي كرديم حال اين ميكرو آمادست ولي چطوري اونو به كار بگيريم مثلا چطوري باهاش يه استپ موتور رو كنترل كنيم در چه جايي قرار بديم مدار خاصي بايد بسازيم و يا چطوري باهاش LED هارو روشن كنيم و غيره
خيلي ممنون اگه لطف كنيد و زودتر جواب بديد چون من نيازش دارم
voiceoffox
دوشنبه 12 مهر 1389, 11:57 صبح
ببخشید که یکم دیر دارم این سوال رو مطرح می کنم ...:اشتباه: شماره منفی در پورت موازی برای وصل کردن پایه منفی LED کدومه !؟:افسرده:
amirkhan_0o0
چهارشنبه 28 مهر 1389, 01:08 صبح
سلام
اين برنامه PortTalk چه جوري رو ويندوز 7 عمل مي كنه؟
voiceoffox
سه شنبه 25 آبان 1389, 20:24 عصر
آقا اینجا همه چی قاطی شده و وضع حسابی به هم ریخته ! ... :عصبانی:
پس به خواهشا به این نکته ها توجه کنین ! :تشویق:
1. اگه تاپیک تعطیله و متولی نداره بیخودی خودتون رو خسته نکنین و پست اضافه ندین !
2. اگه تاپیک تعطیل نیست (که عملا تعطیله ! :بامزه:) برای جواب دادن به سوال ها و ... سعی کنین بیشتر از ای میل هایهم استفاده کنین تا خیلی انجا شلوغ نشه !
3. ذلطفا مباحث خارج از پورت مطرح نکنید !!!
4. اگه تاپیک دوباره رونق نگرفت (که به احتمال 99 درصد ه8م نمی گیره ! :قهقهه:) یکی از دوستان که <تو این زمینه وارده> بحث ادامه بده یا یه جوری جمعش کنه تو رو خدا !
ممنون و موق باشید ! :لبخند:
fure elise
یک شنبه 08 اسفند 1389, 11:19 صبح
سلام
ممنون از تاپیک جذابتون
من دانشجوی رشته مهندسی ITهستم .سوالم این بود که برای طراحی روبات چه زمینه هایی رو باید یاد بگیرم و از چه دوستانی کمک بگیرم
mjx_icode
پنج شنبه 03 شهریور 1390, 14:47 عصر
حالا که تموم شد و رفت ولی می خواستم پیشنهاد بدم به جای استفاده از DLL و وابسته کردن خودتون بهش می تونید مستقیما با سی/سی پلاس پلاس با سخت افزار ارتباط برقرار کنید.
برای این کار
1- یک کرنل ساده درست کنید که برنامه رو خارج ازسیستم عامل اجرا کنه (با همکاری اسمبلی و سی پلاس پلاس به راحتی این کار انجام میشه !)
2- حالا ارتباط مستقیم رو با پورت و دستگاه ها تجربه کنید !
djsohrab2007
یک شنبه 06 شهریور 1390, 01:06 صبح
حالا که تموم شد و رفت ولی می خواستم پیشنهاد بدم به جای استفاده از DLL و وابسته کردن خودتون بهش می تونید مستقیما با سی/سی پلاس پلاس با سخت افزار ارتباط برقرار کنید.
برای این کار
1- یک کرنل ساده درست کنید که برنامه رو خارج ازسیستم عامل اجرا کنه (با همکاری اسمبلی و سی پلاس پلاس به راحتی این کار انجام میشه !)
2- حالا ارتباط مستقیم رو با پورت و دستگاه ها تجربه کنید !
سلام،
دوست عزیز کی گفت تموم شد و رفت من به شخصه علاقه من به یادگیری هستم ولی در این زمینه ( ارتباط با سخت افزار مثلا برنامه نویسی رو پورت usb ) هیچی بلد نیستم ، کتاب فارسی خوب هم پیدا نکردم ، کسی هم نبود یاد بده.
این تاپیک اگر راه بیافته ( دوباره ) خیلی عالی میشه ، برای شروع و جهت افزایش هیجان لطف کن این چیزی که گفتی را توضیح بده و بی زحمت جوری توضیح بده که همه بتونن استفاده کنند، فکر کن داری تو کلاس درس می دی توی کلاس هم شاگرد قوی هست و هم متوسط و هم ضعیف.
اگه وقت بگذاری و توضیح بدی همه مدیونت می شویم.
با تشکر.
caspianhero
پنج شنبه 13 بهمن 1390, 14:52 عصر
با سلام
میخواستم بدونم c++ میتونه مثل زبان سی با پورت ها ارتباط برقرار کنه از نظر سخت افزاری(کلا)؟؟؟
سپاس
prince0fpersia
دوشنبه 28 فروردین 1391, 17:27 عصر
لطفا یکی بیاد آموزش کار با پورت یو اس بی رو قرار بده خواهشا یا یک منبع خوب معرفی کنه
mtcanada
شنبه 21 مرداد 1391, 22:06 عصر
سلام به همه مهندسین عزیز
عزیزان سوالی داشتم خیلی خوشحال می شم که کمکم کنید-مرسی
من می خوام برنامه ای بنویسم که وقتی روی دکمه مثلا Record کلیک کردم صدایی را از میکروفن تو 10 ثانیه ضبط کنه و بعد از 10 ثانیه اون صدایی رو که ضبط کرده در جایی از هاردم ذخیره کنه و بلافاصله دومرتبه تو 10 ثانیه شروع به ضبط مجدد صدا و ذخیره آن کنه.
و این عمل را تا آنجایی ادامه بده که بر روی دکمه Stop کلیک کنم.
دوستان وارد و عزیزان برنامه نویس لطفا در کمکتون تعجیل بعمل آورید ، بدجوری نیاز به کمکتون دارم مرسی.
#target
شنبه 21 مرداد 1391, 23:29 عصر
سلام به همه مهندسین عزیز
عزیزان سوالی داشتم خیلی خوشحال می شم که کمکم کنید-مرسی
من می خوام برنامه ای بنویسم که وقتی روی دکمه مثلا Record کلیک کردم صدایی را از میکروفن تو 10 ثانیه ضبط کنه و بعد از 10 ثانیه اون صدایی رو که ضبط کرده در جایی از هاردم ذخیره کنه و بلافاصله دومرتبه تو 10 ثانیه شروع به ضبط مجدد صدا و ذخیره آن کنه.
و این عمل را تا آنجایی ادامه بده که بر روی دکمه Stop کلیک کنم.
دوستان وارد و عزیزان برنامه نویس لطفا در کمکتون تعجیل بعمل آورید ، بدجوری نیاز به کمکتون دارم مرسی.
اینجا رو نگاه کن (http://msdn.microsoft.com/en-us/library/windows/desktop/dd743847(v=vs.85).aspx)
mtcanada
یک شنبه 22 مرداد 1391, 01:49 صبح
اینجا رو نگاه کن (http://msdn.microsoft.com/en-us/library/windows/desktop/dd743847%28v=vs.85%29.aspx)
ممنون از راهنماییتون اما ترجیحا با
++c
و
#c
می خواستم .
از دوستان کسی دیگه هم می تونه راهنمایی کنه *فوری لطفا*
#target
دوشنبه 23 مرداد 1391, 00:37 صبح
ممنون از راهنماییتون اما ترجیحا با
++c
پس اون چیه ؟؟ API سیستم عامل ویندوز هست که شما میتونید در زبان برنامه نویسی مورد نظر خودتون اونو فراخوانی کنین !
m4hd1r
جمعه 27 مرداد 1391, 02:11 صبح
راجع به input های پارالل هم توضیح میدید ؟ این که چجوری کد هاش رو بنویسم و ولتاژ مجازش چقدر هست؟
roshanak878
یک شنبه 28 آبان 1391, 10:16 صبح
سلام. من یک مشکل در ارتباط با سخت افزار دارم... یک بورد که به صورت real time و فرکانس ثابت 100 هرتز کار می کند. این بورد داده های وروردی را از یک شبیه ساز می گیرد که بر روی یک pc ریخته شده است. اما شبیه ساز به دلیل استفاده از سیستم عامل ویندوز با فرکانس ثابت 100 اجرا نمیشود. در این رابطه یعنی ثابت کردن فرکانس شبیه ساز چه راه حل هایی وجود دارد؟ با تشکر
سناسنا
سه شنبه 12 دی 1391, 10:13 صبح
چطوری بعد از ریست سیستم از برنامه porttalk استفاده کنم کجا بروم؟:افسرده:
یه آدم
پنج شنبه 22 فروردین 1392, 18:24 عصر
سلام
الآن یه هفتس دارم دنبال این مطلب میگردم که تو C++ چه طور میشه با پورت سریال ارتباط برقرار کنم . حتی تو فرم اپلیکیشنش هم یه شی serialport داره که میشه تو فرم واردش کرد . چه طور میشه ا این شی کار کرد ؟ چه توابعی داره ؟
amir_nic
پنج شنبه 23 خرداد 1392, 23:19 عصر
با سلام ممنون از این مطالبی که دراختیار کاربران قرار دادید. اما متاسفانه این مطالب پیش پا افتاده و قدیمی شده
من می خواستم درباره ارتباط پورت USB با نرم افزار بدانم. برنامه ای که در اختیار دارم نیز borland است .
می خواهم با استفاده از مبل USB to serial با میکرو ارتباط برقرار کنم.
behzadamin12
شنبه 13 دی 1393, 19:49 عصر
با سلام
میشه یکی توضیح بده که با سی شارپ هم میشه با سخت افزار ارتباط برقرارکرد یا نه؟
اگه میشه چه جوریه؟
یه مثال هم بگید!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.