PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : دستور input



safavism
12-11-2012, 20:22
با سلام خدمت دوستان

از دستور input جهت دریافت دیتا از پورت سریال ماژول گیرنده hm_tr استفاده میکنم ولی وقتی دیتایی دریافت نمیشه loop مربوط به دریافت دیتا متوقف میشه و رو خط دستور input می مونه ولی میخوام وقتی دیتایی نباشه از loop خارج بشه و بعنوان مثال رو صفحه lcd بنویسه no data ...بیسوادم دیگه به بزرگواری خودتون ببخشید از دوستان راهنمایی میخوام(بیسیک-بیسکام)

cmuiran
12-11-2012, 20:56
سلام
والا ما که متوجه نشدیم :018:
ولی در کل وقتی از دستور input استفاده میکتی cpu اینقدر صبر میکنه که از پورت سریال دیتا بگیره تا وقتی هم دیتا نگیره خط بعد اجراء نمیکه
برای جلوگیری از این مشکل یک ریجیستر که هنگام آمدن دیتا از پورت سریال 1 میشه میتونی از اون استفاده کنی فعلا یادم نیس ولی بهت میگم چییه
در ضمت بهتر توضیح بده ، من مشکل اصلی متوجه نشدم

safavism
12-11-2012, 21:18
از اینکه بد توضیح میدم ببخشید
میخواستم از دست این صبر cpu خلاص بشم راهی هست که بزنیم تو سر این cpu بی صاحب متوجه بشه که اصلا الان قرار نیس دیتا بیاد بیکار نشین برو دنبال کارای دیگه...میخواستم زمانی که دیتا نمیاد جمله NO DATA ودر صورت دریافت دیتا از پورت سریال اون اطلاعاتی که از پورت میگیرم رو LCD نمایش داده بشه..

cmuiran
12-11-2012, 21:27
مهندس این دستوری من تو هیچ کتابی ندیدم ولی کار میکنه
If Iserial = 1 then Call _seria


دستور بالا تا زمانی که دیتا نیاد کاری نداری ولی اگه دیتا بیاد میره تو تابع _seria

modj.ir
12-11-2012, 21:32
می تونین وقثه سریال رو فعال کنین و وقتی اطلاعاتی دریفات شد ، روتین وقفه اون رو نمایش بده

morteza_rk
12-11-2012, 21:34
سلام

علتش اینه که دستور input برای اجرا نیاز به کاراکتر اینتر (Cr) با کد 13 داره. برای خلاصی از این حالت روش های زیادی وجود داره. از جمله نظیم خواص دستور input ، روش دیگه هم استفاده از پورت سریال در مد وقفه ای هست که توصیه میشه. البته روش های دیگه هم هست.

safavism
13-11-2012, 12:18
متشکرم از دوستان
اول برم سراغ اون دستوری که جناب غلامی گفتن ... چیز جدیدیه برام.... ببینم چی میشه .

safavism
15-11-2012, 11:54
با سلام
If Iserial = 1 then Call _seria متاسفانه نشد...یعنی اینکه کامپایل نمیشه خطا میزنه....میخواستم سراغ وقفه نرم ولی رفتم ... مجبورم :sa:

morteza_rk
15-11-2012, 12:51
if iserial = 1 then call _seria متاسفانه نشد..
مهندس ما اصلا همچین دستوراتی نداریم توی بسکام. منظور پیمان جان این بود که خودتون یه همچین روتینی بسازید. دوتا اسم هم مثال زده.

shayanmelody
15-11-2012, 13:31
dim s as string*16
do
while s=0
s=waitkey()
if s>0 then
home
lcd s
else
home
lcd "no data"
end if
wend
loop

cmuiran
15-11-2012, 14:12
سلام آقا مرتضی این دستور iserial تو بسکام هست ولی تو help نیس با 1001 ببختی و ترفند به دست آوردم
این دستور زمانی که سریال بیاد 1 میشه و نیاد 0 هست که میتونه خیلی کاربردی باشه ، به کار من که شدید اومد

cmuiran
15-11-2012, 14:22
با سلام
if iserial = 1 then call _seria متاسفانه نشد...یعنی اینکه کامپایل نمیشه خطا میزنه....میخواستم سراغ وقفه نرم ولی رفتم ... مجبورم :sa:

تو ورژن 2.0.7.3 من دارم از این دستور استفاده میکنم
حالا نمیدونم ورژن چند استفاده میکنین

safavism
15-11-2012, 15:33
متشکرم از دوستان

جناب غلامی ورژن 1.11.9.5...من از قافله عقب هستم!

cmuiran
15-11-2012, 23:21
دادا این ورژن نصب کن کارت خیلی راحت تر از دستورات راه میفته کلی امکانات مخفی داره !!

morteza_rk
16-11-2012, 14:02
سلام آقا مرتضی این دستور iserial تو بسکام هست ولی تو help نیس با 1001 ببختی و ترفند به دست آوردم

جالبه! من تا حالا ندیدمش. ولی دستور ischarwaiting رو می دونم که داریم. من سه تا ورژن نصب دارم. 1.119.8 و 2.0.7.3 , 2.0.7.5 ، دمت گرم دادا ، روشنمون کردی.

به نظر من استفاده از مد وقفه ای بهتره مهندس صفوی.

cmuiran
16-11-2012, 17:17
جالبه! من تا حالا ندیدمش. ولی دستور ischarwaiting رو می دونم که داریم.

سلام مهندس
این دستور چیکار میکنه ؟

morteza_rk
16-11-2012, 22:19
همونی که شما میگی iserial انجام میده! یعنی اگه یه بایت به پورت سریال رسیده باشه و مقدار 1 برمی گردونه و در غیر اینصورت مقدار صفر!؟!

safavism
18-11-2012, 01:47
بسیار سپاسگزارم

راهنماییهای دوستان یک به یک تست میزنم نتیجه رو حتما منعکس میکنم ....فقط یه کد چناب شایان زحمت کشیدن و نوشتن اون waitkey بنظر برای ماژول hm-tr جواب نده چون فقط با input دیتا رو میگیره یه نکته دیگه اینکهwihle تا s صفر هست لوپ اجرا میشه ولی داخل همین لوپ s شرط بزرگ از ازصفر قرار داده شده بنظر منه بیسواد اون شرط قابل اجرا نخواهد بود ولی شاید بعد از خط waitkey قرار گرفته بمحض در یافت دیتا و بعد از رسیدن به اول لوپ مربوطه دیگه لوپ اجرا نشه و بقیه کد اجرا بشه ..باتشکر

cmuiran
18-11-2012, 08:42
آقا محمد من به شما iserial سفارش میکنم :0013:

safavism
18-11-2012, 10:04
{quote=cmuiran;56501]آقا محمد من به شما iserial سفارش میکنم :0013:[/quote]
حتما بر روی چشم.. , باید ورژن 2.0.7بسکام نصب کنم

safavism
18-11-2012, 18:55
با سلام
iserial استفاده کردم در ورژن 2.0.7.3 ولی خطا میزنه اما ischarwaiting مشکلی نداشت و تست زدم مشکل حل شد که با کمی تغییرات در کد برنامه به نتیجه رسیدم ...اما یه راه دیگه هم تست زدم و اون استفاده از امکانات تایمر 1 بود باز موفق شدم به نتیجه برسم .از مهندس غلامی و رحیمی ودیگر دوستان سپاسگزارم خدا به شما اجر بده به یه بچه سید خمس علمتون دادین.ولی اون iserial باید پیداش کنم .والا اول من خوندمش عزراییل ترسیدم برم طرفش.

cmuiran
18-11-2012, 20:47
با سلام
iserial استفاده کردم در ورژن 2.0.7.3 ولی خطا میزنه اما ischarwaiting مشکلی نداشت و تست زدم مشکل حل شد که با کمی تغییرات در کد برنامه به نتیجه رسیدم .

جالبه ، من استفاده میکنم مشکل نداره ولی برای شما خطا داره
داداش خطا چی میده ؟؟

safavism
18-11-2012, 21:29
جالبه ، من استفاده میکنم مشکل نداره ولی برای شما خطا داره
داداش خطا چی میده ؟؟

با سلام
کامپایل نمیشه ...بی مروت بسکام همچین دستوری نمیشناسه!

cmuiran
18-11-2012, 22:24
:mrgreen: حتما بسکام من VIP هس دیگه
جی دونم ، شاید یک سری کتابخانه هس که من دارم تو ندارم
بازم نمیدونم

morteza_rk
19-11-2012, 11:38
حتما بسکام من vip هس دیگه
جی دونم ، شاید یک سری کتابخانه هس که من دارم تو ندارم
بازم نمیدونم

مهندس نمونه کد بذار ببینیم چی کار میشه کرد؟ شایدم از کتابخونه هات باشه. اونارم بذار لطفا.