دارم روی یه ربات کار مبکنم. برای ارتباط بیسیم رباتم از HM-T و HM-R استفاده می کنم. ولی به خیلی مشکل در ایجاد ارتباط سریال بر خوردم. فرستنده اطلاعات را به درستی میفرسته فقط در گیرند نمیدونم چطور اطلاعات کامل دریافت کنم! از دستور Inkey , waitkey ,input , inputbin همه استفاده کردم ولی جواب کاملی نگرفتم. در بعضی موارد به جواب می رسیدم ولی الان خیلی گیر کردم. میخوام کاری کنم تا اطلاعات کامل دریافت نشد هیچ عملی انجام نده (سرعت هم خیلی واسم مهمه).
از وقفه سریال استفاده کن اینجوری تمامی ورودی ها رو میگیری حالا اینکه همه ی اطلاعات هست یا نیست رو با خلاقیت خودت باید بسنجی مثلا همیشه طور رشته ها 10(مثلا) کلی کار دیگه هم می تونی بکنی
روش های بالا برای این کار شما به نظر من مناسب نیست همون وقفه سریال کارتو راه می نداره
(۲۸-مرداد-۱۳۹۱, ۱۰:۰۹:۴۷)behzady نوشته است: [ -> ]از وقفه سریال استفاده کن اینجوری تمامی ورودی ها رو میگیری حالا اینکه همه ی اطلاعات هست یا نیست رو با خلاقیت خودت باید بسنجی مثلا همیشه طور رشته ها 10(مثلا) کلی کار دیگه هم می تونی بکنی
روش های بالا برای این کار شما به نظر من مناسب نیست همون وقفه سریال کارتو راه می نداره
اگر امکان داره یه مثال کوچیک بزنین، تو کتاب و نت خیلی دیدم ولی مثال کاربدی که نشون بده چطور باید ازش استفاده کنم جایی ندیدم. با تشکر
با مراجعه به پوشه ی بسکام
MCS Electronics\BASCOM-AVR\SAMPLES\SERIAL
فایل serint.bas را باز کرده مثالش برای کار با وقفه سریال هست کاملا هم واضحه مشکلی بود در خدمتم
(۲۸-مرداد-۱۳۹۱, ۱۰:۱۷:۰۹)behzady نوشته است: [ -> ]با مراجعه به پوشه ی بسکام
MCS Electronics\BASCOM-AVR\SAMPLES\SERIAL
فایل serint.bas را باز کرده مثالش برای کار با وقفه سریال هست کاملا هم واضحه مشکلی بود در خدمتم
با تشکر فراوان و عرض شرمندگی که انقدر سوال می پرسم. فایلی که گفتین رو بررسی کردم فقط نمیدونم D = Udr چی کار میکنه!!!؟ یعنی منظور از UDR چیه!!؟ یعنی همان ورودی سریاله!!؟ به جای hnkey ,... استفاده میشه. و اینکه فرمت دریافت اطلاعاتش چطوره!!؟ تو help هیچی پیدا نکردم.
چند وقتیه دور و بر میکرو نرفتم.
یادمه تو کد ویژن یه وقفه بود که باید توش هی بافر رو میخوندیم و کانتر رو اضافه میکردیم.وقتی هم خوندن تموم شد کانتر رو صبر میکردیم و بافر رو خالی میکردیم.اما توی بسکام رو درست یادم نمیاد
بافر سریال هست کد دریافتی در اون ذخیره می شه اخرین کد گرفته شده به صورت اسکی در اون ذخیره میشه پس از خوندن هم صفر میشه
خب تا چند بایت در اون ذخیره میشه!!؟ من میخوام یه ربات بسازم که با چند کلید کنترل میشه... به نظرتون اطلاعات را برای هر کلید به صورت جدا بفرستم یا به صورت یک کد بفرستم!؟ اگر به صورت کد بفرستم امکان از دست دادنش وجود داره!؟
سلام..
سری hmt , hmr یا hmtr یکی از بدرد نخور ترین ماژول ها است..
ببین دوسته من شما برای اینکه فقط رباتت رو عقب جلو کنی یا اینکه بازویی را حرکت بدی میتونی از ای سی های سری pt استفاده کنی..
ماژول hmr , hmt خیلی نویز میگیره.. و برای اینکه دیتایی رو بفرستی باید چند بار ارسال کنی و در گیرنده هم در صورت دریافت کد و دیتا و کد2 انوقت دیتایی را استفاده کنه...
یعنی شما یه کد1 مثلا 12 و بعد دیتای اصلی و سپس کد 2 مثلا 22 ارسال میکنی.. در گیرنده اگر دو تا کد درست بود دیتا رو استفاده میکنه..
من پیشنهادم ماژول های rfm12b یا ای سی های سری pt هست..
ماژول hmtr من بیشتر از 10 متر نتونستم ازش برد بگیرم...
موفق باشی..
این دستور رو بعد از print استفاده کن تا دیتا رو ارسال کرد صبر کنه تا ریجیستر اماده بشه برای ارسال بعدی..
و برای وقفه بدین صورت عمل کن..
کد:
enable interupts
enable urxc
on urxc ebi
do
loop
ebi:
var=udr
return
موفق باشی
(۲۸-مرداد-۱۳۹۱, ۱۱:۴۷:۱۹)blackstar368 نوشته است: [ -> ]خب تا چند بایت در اون ذخیره میشه!!؟ من میخوام یه ربات بسازم که با چند کلید کنترل میشه... به نظرتون اطلاعات را برای هر کلید به صورت جدا بفرستم یا به صورت یک کد بفرستم!؟ اگر به صورت کد بفرستم امکان از دست دادنش وجود داره!؟
یک بایت ذخیره میشه گفتم یک کد اسکی هست
خوب به هر کد یک عدد نسبت بدید و بفرستید دیگه اگر همه ی کلید ها قراره فرستاده بشه که میل خودتون هست فقط طول داده ارسالی یکی باشه که بتونید بفهمید که یکسری داده هست که بعد به هم بچسبونید
مثلا چهار تا کلیده یک رشته درست کنید که مثلا هست 1010 بعد اون طرف چهار بار که داده رو در یافت کردید هر چهار تا رو یا به هم بچسبونید یا به صورت جدا گانه استفاده کنید
(۲۸-مرداد-۱۳۹۱, ۱۴:۵۸:۳۲)EBKA نوشته است: [ -> ]سلام..
سری hmt , hmr یا hmtr یکی از بدرد نخور ترین ماژول ها است..
ببین دوسته من شما برای اینکه فقط رباتت رو عقب جلو کنی یا اینکه بازویی را حرکت بدی میتونی از ای سی های سری pt استفاده کنی..
ماژول hmr , hmt خیلی نویز میگیره.. و برای اینکه دیتایی رو بفرستی باید چند بار ارسال کنی و در گیرنده هم در صورت دریافت کد و دیتا و کد2 انوقت دیتایی را استفاده کنه...
یعنی شما یه کد1 مثلا 12 و بعد دیتای اصلی و سپس کد 2 مثلا 22 ارسال میکنی.. در گیرنده اگر دو تا کد درست بود دیتا رو استفاده میکنه..
من پیشنهادم ماژول های rfm12b یا ای سی های سری pt هست..
ماژول hmtr من بیشتر از 10 متر نتونستم ازش برد بگیرم...
موفق باشی..
این دستور رو بعد از print استفاده کن تا دیتا رو ارسال کرد صبر کنه تا ریجیستر اماده بشه برای ارسال بعدی..
و برای وقفه بدین صورت عمل کن..
کد:
enable interupts
enable urxc
on urxc ebi
do
loop
ebi:
var=udr
return
موفق باشی
خیلی ممنون از پاسخ خوبتون. نمی دونم چی قبل خرید هر چیزی در موردش تحقیق می کنم همه میگن خوبه بعدی بدترین جنس دنیا میشه. بگذریم خلاصه گرفتم زیاد هم وقت و هزینه ندارم برم دنبال چیزه دیگه ای!! به خاطر رفع همین مشکل تصمیم دارم دیتا مو بصورت کارکتری کدگذاری کنم. به نظرتون اینجوری می تونم جواب بگیرم!؟ بنظرم تو تئوری باید خوب ج بده... الان حدود یکی دو هفته یک بند دارم روش کار می کنم. تا آخر این هفته یا هفته بعد هم باید پروژه ام رو تحویل بدم. میشه کمکم کنید!
البته قسمت بازو رباتم رو به صورت مجزا جواب گرفتم یعنی تونستم کنترل کنم تا حدی ولی می خوام حرکت ربات رو کنترل کنم سخت میشه برام...
(۲۸-مرداد-۱۳۹۱, ۱۵:۰۳:۴۷)behzady نوشته است: [ -> ] (۲۸-مرداد-۱۳۹۱, ۱۱:۴۷:۱۹)blackstar368 نوشته است: [ -> ]خب تا چند بایت در اون ذخیره میشه!!؟ من میخوام یه ربات بسازم که با چند کلید کنترل میشه... به نظرتون اطلاعات را برای هر کلید به صورت جدا بفرستم یا به صورت یک کد بفرستم!؟ اگر به صورت کد بفرستم امکان از دست دادنش وجود داره!؟
یک بایت ذخیره میشه گفتم یک کد اسکی هست
خوب به هر کد یک عدد نسبت بدید و بفرستید دیگه اگر همه ی کلید ها قراره فرستاده بشه که میل خودتون هست فقط طول داده ارسالی یکی باشه که بتونید بفهمید که یکسری داده هست که بعد به هم بچسبونید
مثلا چهار تا کلیده یک رشته درست کنید که مثلا هست 1010 بعد اون طرف چهار بار که داده رو در یافت کردید هر چهار تا رو یا به هم بچسبونید یا به صورت جدا گانه استفاده کنید
اره فک میکنم بهترین روش همین باشه دارم همین کار می کنم با این تفاوت که به هر کلید یک کد کارکتری دادم که حالتش مشخص بشه... بازم خیلی ممنون از کمکتون. بازم اگر طرحی به ذهنتون میزنه که بهم کمک می کنه ممنون میشم بهم کمک کنید...