اطلاعیه

Collapse
No announcement yet.

انتقال چند متغییر بین دو میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتقال چند متغییر بین دو میکرو

    سلام
    خلاصه کاری که می خوام انجام بدم :
    میخوام یه سری متغییر رو از یه میکرو به میکرو دیگه منتقل کنم .
    حالا مشروحش :
    هرچی تو سایت ها رو نگاه کردم به نتیجه درستی نرسیدم . انواع ارتباط ها معرفی شده ، که فکر کنم i2c و usart کارا تر باشن برای من . فاصله بین دو میکرو زیاد نیست . احتمال نویزی بودن محیط ( نه در حد زیاد ) هم هست . تو ارتباط از طریق I2C میشه یه متغییر رو فرستاد . حالا می خوام ببینم راهی هست که من بتونم چند متغییر رو از Slave به متغییر های مشابه در Master بفرستم یا نه . یه سری سنسور دارم که به میکرو Slave متصل هستن و پردازش های اصلی هم روی میکرو Master باید انجام بشه .
    البته می شه تو یه حلقه چندین مرتبه ورودی I2c رو خوند و در متغییر های جداگانه ریخت ، ولی فکر کنم کار جالبی نباشه . حالا بر فرض که بخوایم اینطوری چند متغییر رو بفرستیم ، تاخیر های حلقه باید چقدر باشه تا خطایی پیش نیاد ؟
    ممنون می شم اگه کسی که تابحال این کار رو کرده و یا اطلاعات درست و کاملی از این جریان داره راهنماییم کنه .
    زبان برنامه نویسیم هم بسکام هست .
    یا علی

    #2
    پاسخ : انتقال چند متغییر بین دو میکرو

    به نظر من ارتباط USART بهتر است .
    نحوه کار را برایتان میگویم.
    سخت افزار :
    1. پایه TXD میکرو 1 را به پایه RXD میکرو 2 وصل کنید.
    2. پایه RXD میکرو 1 را به پایه TXD میکرو 2 وصل کنید.
    3. نکته ی خیلی مهم : "گراند های دو میکرو را به هم وصل کنید" در غیر این صورت هیچ داده ای رد و بدل نخواهد شد.
    4.کریستال میکرو ها را یکسان انتخاب کنید .(مهم)
    _________________________________
    نرم افزار :
    بعد از معرفی میکرو و مقدار دهی کریستال ، بنویسید:
    کد:
    $baud = VAR
    این دستور نرخ ارسال اطلاعات را تعیین می کند.
    دقت کنید که این دستور باید در هر دو میکرو نوشته شود و مقدار آن نیز (VAR) در هر دو میکرو یکسان باشد.
    VAR میتواند این مقادیر باشد:
    9600
    4800
    4200
    .
    .
    .
    مقادیر دیگری هم هستند که من به خاطر ندارم.
    *این نوع ارتباط دو طرفه است یعنی هر دو میکرو می توانند به یکدیگر داده بدهند یا داده دریافت کنند.
    حالا با این دستورات می توان داده ها را ارسال کرد:
    ارسال:
    کد:
    print "string"
    string هر رشته ای می تواند باشد .
    یا می توان به جای "string" متغیری از نوع رشته گذاشت.
    دریافت:
    کد:
    input VAR
    VAR متغیری از نوع رشته ای است .

    ________________________________
    اگر مشکلی بود بگویید. :smile:
    [glow=green,2,300][b]بشر ممکن الخطاست
    درخت هرچه پربار تر سر به زیر تر[/glow]

    دیدگاه


      #3
      پاسخ : انتقال چند متغییر بین دو میکرو

      با سلام
      منهم قبلا در این مورد کار کردم حتی دوسال پیش یه تاپیک ایجاد کردم در این مورد
      من اینکارو کردم که خوب هم جواب داد
      دونه دونه متغیر ها رو به رشته تبدیل میکنی
      بعد با دستور printbin انهارو پشت سرهم میفرستی
      مثل این
      dim jafar as string*3
      dim ali as string*3
      dim a as beyt
      dim b as beyt


      jafar=str(a)
      ali=str(b)
      printbin jafar,ali
      روزی که درک کردیم همه چیز به خدا تعلق دارد . آن روز .روز طلوع دانش است

      دیدگاه


        #4
        پاسخ : انتقال چند متغییر بین دو میکرو

        اغلب برای ارتباطات بین دو میکرو چون نیاز به سرعت بالا می باشد، ارتباط SPI را توصیه می کنند.

        اگر پروژه ی آماده ی اون به زبان C به دردتون می خوره براتون بزارم!؟
        همواره يادمان باشد:
        1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
        2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
        3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

        دیدگاه


          #5
          پاسخ : انتقال چند متغییر بین دو میکرو

          نوشته اصلی توسط S_Ahmad
          اغلب برای ارتباطات بین دو میکرو چون نیاز به سرعت بالا می باشد، ارتباط SPI را توصیه می کنند.

          اگر پروژه ی آماده ی اون به زبان C به دردتون می خوره براتون بزارم!؟
          اگه میشه یه نمونه کد به زبان c بزارین. lمن تو انتقال همزمان دیتا مشکل خوردم. از slave به مستر دیتا منتقل نمیشه :(
          خدا نور است و من اشعه ای از او ...

          دیدگاه


            #6
            پاسخ : انتقال چند متغییر بین دو میکرو

            نوشته اصلی توسط بهنام رستمی نژاد
            اگه میشه یه نمونه کد به زبان c بزارین. lمن تو انتقال همزمان دیتا مشکل خوردم. از slave به مستر دیتا منتقل نمیشه :(
            این هم درخواست شما:
            http://dl.roboticngo.com/uploads/21-spi.rar
            همواره يادمان باشد:
            1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
            2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
            3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

            دیدگاه


              #7
              پاسخ : انتقال چند متغییر بین دو میکرو

              نوشته اصلی توسط S_Ahmad
              این هم درخواست شما:
              http://dl.roboticngo.com/uploads/21-spi.rar
              ممنون احمد آقا
              من اساسی ترین مشکلم همین فایل هدر SPI.h هست. من با atmel studio کار میکنم همچی هدری هم نداره تو کتابخونش. بجاش یه هدر دیگه گیر اوردم موقع ارسال دیتا به اسلیو درسته اما با دریافت هم زمان در مستر مشکل داره.
              اگه لازمه بگید تا فایل هاشو پ کنم.
              اگه کسی لطف کنه فایل C و هدر SPI رو بزاره من نگا بندازم ممنون میشم
              خدا نور است و من اشعه ای از او ...

              دیدگاه

              لطفا صبر کنید...
              X