ايران ويج

نسخه‌ی کامل: مشکل در ارتباط دو میکرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام من در ارتباط دو میکرو با هم به یک مشکل بزرگ برخودم .من میخوام دو میکرو رو به هم وصل کنم میکرو اول یک عدد رو از طریق کیپد یا هر وسیله دیگه ای میگره توجه داشته باشید که این عدد از 255 بزرگتره یعنی تقریبا عدد 900 حالا میکرو اول این عدد رو باید به میکرو کنترل دوم ارسال کنه و ادامه برنامه رو میکرو کنترل دوم از روی این عدد اجرا کنه من از طریق تمام ارتباط ها اقدام به این کار کردم از جمله ارتباط SPI اما در تمام ارتباط ها حداکثر عددی که توانستم به میکرو دوم ارسال کنم عدد 255 بود لطفا منو راهنمایی کنید چگونه می تونم این کارو انجام بدم.
خوب مهندس یه رشته بفرست !
مثلا رشته زیر رو بفرست :

کد php:
num=9999 

و تست کن تو گیرنده اگه چهار بایت اول =num بودن اونوقت چهار بایت بعدی رو به عنوان عدد دریافتی حساب کنه !
کاری نداره و راحته !!
دستور mid تو بسکام !!

با print می تونی ارسال کنی و با inkey یا input یا waitkey می تونی دریافت کنی !!
ولی input راحت تره و خودش همه کار رو می کنه !!!
ممنون مهندس
حالا یک مشکل دیگه تو ارتباط SPI
من یک میکرو مستر دارم و سه میکرو اسلیو اول اینکه چطوری به وسیله SPI اینارو به هم وصل کنم
دوم اینکه اگه خواستم به میکرو اول یا دوم دستور بدم که فلان عدد یا متغیر رو دریافت کنه چگونه باید دستور بدم
البته با بسکام
با تشکر از راهنمایی شما
من از پورت سریال استفاده کردم و مشکلی هم نداشتم توی محدودیت تعداد کاراکتر ارسالی
از طریق همین سریال هم میتونی میکروها را با هم شبکه کنی
مثلا یک استراکچر برای خودت در نظر بگیر اینطوری

عدد مورد نظر چهار رقمی - کد میکرو - کد کنترلی
کد:
@$@-01-1234
اینطوری میکروی اولی میبینه یه بسته براش اومده پردازش متنی ساده روش انجام میده اگه کاراکتر ششم عدد خودش بود اون بسته مال اونه در غیر اینصورت روی پورت TX خودش بدون دستکاری ارسالش میکنه برای میکروی بعدی...
مهندس behzadX با پایه ss این کار رو می تونی راحت انجام بدی !

بخش Using the SPI protocol رو تو help بسکام بخون !!

[تصویر:  7de5b4bb95e746aca8c9.PNG]
درسته از اون طریق هم می شه ولی یکمی خطا داره بعضی وقتا بسته ناقص میرسه.اون راه رو امتحان کردم یکمی پیچیده می شه ولی با یکم دقت بیشتر عملیه. ولی می خوام یه راه کاملا استاندارد و ساده تر رو امتحان کنم . با SPI هم می تونم به راحتی عدد مورد نظرم رو با دقت و خطای خیلی کمتر بفرستم . ولی فقط برای یک میکرو می خوام یکم دقیقتر توضیح بدی برای اینکه بتونم در یک ارتباط SPI عدد رو به میکرو مورد نظرم برسونم استفاده از پایه SS میکرو هست اما اون فقط یک پایه است و برای میکرو های دیگه پایه ای نیست پس باید پایه SS غیر فعال بشه و از چند پین میکرو به جای اون استفاده کنم حالا این پایه SS در هنگام انتقال دیتا چه فعالیتی انجام میده آیا فقط صفر یا یک می شه یا که یک سیگنال خاص از خودش خارج می کنه حالا اگه این یک سیگنال خاص است چگونه میتونم روی یک پین اون رو اجرا کنم.
با هم به خاطر جواب های سریع و منطقی از شما تشکر میکنم.
نقل قول: آیا فقط صفر یا یک می شه
دقیقا !
مثل ENABLE می مونه !!

SPI خیلی بردش کمه !!!


واسه سریال هم این کارو رو من رو یه عالمه میکرو انجام دادم و به مشکلی بر نخوردم !
وقفه سریال می تونه خیلی کمک کنه !!!
خب من اینکارو کردم یه برنامه به این صورت نوشتم
Do
set Porta.0
Spiout A , 5
Reset Porta.0
Locate 1 , 1
Lcd A
Incr A
Waitms 10
Loop
End
در این مثال Porta.0 رو به جای پایه SS یک کردم اما میکرو دیتا دریافت نکرد
حتی برعکس هم عمل کردم یعنی اون رو صفر کردم ولی بی تاثیر بود.
نمی دونم شاید جای دیگه ای از برنامه مشکل داره.
احتمالا یه جا مشکل داره !!

Porta.0 رو خروجی کردی ؟

رو یه پورت دیگه تست کن !!

اگه با پروتئوس تست می کنی فایلشو بذار !!
ببخشید یه سوال فایها رو چطوری آپ کنم؟!!!!!!!!!!!!!!
ShyShyShyShyShyShyShyShyShyShyAmazeAmazeAmaze
پاسخ جدید رو بزن ! ( پایین سمت راست )

[تصویر:  newreply.gif]

یه قسمت داره واسه اپلود !! ( اون پایین ) !!!
صفحه‌ها: 1 2