اطلاعیه

Collapse
No announcement yet.

کمک در مورد ارتباط spi

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

    کمک در مورد ارتباط spi

    سلام،من می خواستم بین دو تا میکرو mega 16 ارتباط برقرار کنم و یک سری اطلاعات رو بفرستم.
    فقط مشکل من اینجاست که حجم دیتا که می خوام بفرستم بیشتر از 255 (ظرفیت int) هستش و نمی دونم باید چکار کنم :angry: .
    ببخشید اگه اینجا نباید موضوع ایجاد می کردم .
    ممنون از کمک همه دوستان.

    #2
    پاسخ : کمک در مورد ارتباط spi

    اولا ظرفیت int برابر 65535 هست و اونی که شما می گید ظرفیت char هست. برای ارسال هم می تونید دیتا را در چند مرحله بفرستید.

    دیدگاه


      #3
      پاسخ : کمک در مورد ارتباط spi

      نوشته اصلی توسط sadeghmojtabaei
      اولا ظرفیت int برابر 65535 هست و اونی که شما می گید ظرفیت char هست. برای ارسال هم می تونید دیتا را در چند مرحله بفرستید.
      خوب من الان اگه بخوام بیشتر از 8 بیت رو بفرستم چطوری باید تو چند مرحله بفرستم؟؟

      دیدگاه


        #4
        پاسخ : کمک در مورد ارتباط spi

        با for نرم افزاری بنویس

        دیدگاه


          #5
          پاسخ : کمک در مورد ارتباط spi

          عددتون چند بایته؟
          باید اول عدد را با 255 and کنید و بفرستید. بعد عدد را 8 بیت به سمت راست شیفت بدید دوباره با 255 and کنید و بفرستید اینطوری دوبایت ارسال میشه حالا برای بایت های بیشتر باید دوباره این کار را انجام بدید.

          دیدگاه


            #6
            پاسخ : کمک در مورد ارتباط spi

            یه نکته هم یادت باشه تو ارتباط spi
            سیم کلاک میکرو باید تا جایی که میتونی کوتاه باشه
            من سر یه پروژه حدود یه هفته سر کار بودم بعد دیدم به علت بلندی سیم به اندازه سی سانت کلاک بهم میریخت و میکرو دستور رو درست نمیگرفت

            دیدگاه


              #7
              پاسخ : کمک در مورد ارتباط spi

              حقیقتش می خوام از یک طرف دو تا ADC رو بخونم با چند تا کلید بعد با spi به یه میکرو دیگه بفرستم تا ازش استفاده کنه، همه چیزش درست شده فقط با همین ارسالش مشکل داشتم، از یکی هم پرسیدم گفت باید استرینگ کنی دیتا رو ولی نمیدونم چطوری؟؟
              حجم دیتا که می خوام بفرستم تقریبا 6,7 رقم داره

              دیدگاه


                #8
                پاسخ : کمک در مورد ارتباط spi

                اگه بخواهید string کنید حجم دیتا خیلی افزایش پیدا می کنه. بزرگترین عدد 7 رقمی 3 بایت هست در صورتی که اگه به string تبدیل کنید هر رقم به یک بایت تبدیل میشه یعنی 7 بایت!
                همونطور که گفتم باید از شیفت دادن بیتی استفاده کنید. مثلا اگه بخواهید 3 بایت را بفرستید با فرض اینکه از زبان c استفاده می کنید ، متغیر مورد نظر متغیر send است و تابع ارسال spi باشد کد شما به این شکل می شود:
                کد:
                spi(send&255);
                spi((send>>8)&255);
                spi((send>>16)&255);
                و در دریافت هم با فرض اینکه نام متغیر دریافت rec و تابع دریافت spi باشد کد به شکل زیر می شود:

                کد:
                rec=spi(0)
                rec+=spi(0)<<8
                rec+=spi(0)<<16

                دیدگاه


                  #9
                  پاسخ : کمک در مورد ارتباط spi

                  سلام گلم :nice:

                  دیدگاه

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