PDA

View Full Version : سوال: دریافت داده از پورت سریال



oveismahmoudi
چهارشنبه 02 شهریور 1390, 14:03 عصر
دریافت داده های مربوط به دما از طریق پورت سریال
من داده های مربوط به دما رو با میکروکنترلر هر یک ثانیه یک بار به سریال می فرستم و تو هایپرترمینال هم دریافت می کنم. می خوام بدونم آیا میشه با C از سریال این اعداد رو دریافت کرد و به صورت زنده روی نمودار رسم کرد؟ با MATLAB چطور؟

Hr.Ziggurat
پنج شنبه 03 شهریور 1390, 07:16 صبح
من داده های مربوط به دما رو با میکروکنترلر هر یک ثانیه یک بار به سریال می فرستم و تو هایپرترمینال هم دریافت می کنم. می خوام بدونم آیا میشه با C از سریال این اعداد رو دریافت کرد و به صورت زنده روی نمودار رسم کرد؟ با MATLAB چطور؟شدنشو که میشه ، ولی سخته. اولا بستگی داره با چه IDE می خوای کار کنی.
توی VC++ کتابخونه واسه ی کار با پورت سریال زیاده مثل :http://www.codeproject.com/KB/system/serial.aspx و ساده تره . واسه ی رسم نمودار هم میتونی از toolkit های آماده استفاده کنی( یا با تابع هایه gdi32 خودت بنویسی)


ولی تویه IDE های ساده ی c مثل turbo کار سخت تر میشه. چون مجبوری برای ارتباط با پورت سریال ، با رجیسترای IO سیستم کارکنی.
حالا یا باید با اسمبلی :

asm{
out 0x3F8,AX ;Write to COM1 IO REG Offset 0
}

یا خود دستورات ساده ی سی این کارو بکنی.

char temp;
outp(0x3F8, temp);
temp = inp(0x3F8);

http://www.beyondlogic.org/serial/serial.htm در مورد رجیسترها IO و وقفه های پورت سریال توضیح داده.
رسم نمودار هم دردسرهایه خودشو داره.(مخصوصا اگه IDE 16 بیت باشه!).

در کل به نظرم بهتره از یه محیط و زبون دیگه مثل VB یا C# یا MATLAB استفاده کنی.چون هم کار با پورت سریال راحتره مثل 'این (http://barnamenevis.org/showthread.php?301693-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%A7%D8%B1%D8%AA%D8%A7%D8%A8%D8%B7-%D8%A8%D8%A7-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-%28-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%88-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A8%D8%A7-PC-%D8%AA%D9%88%D8%B3%D8%B7-C-%29)' تو C# ، هم خیلی راحت میتونی نمودار داشته باشی.
اگه هم میخوای با MATLAB کار کنی، کافی بود یه سرچ ساده کنی !