اطلاعیه

Collapse
No announcement yet.

ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

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

    ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

    [size=14pt][color=black]
    با سلام خدمت دوستان عزیز

    بنده چند وقته که دارم روی پروژه ای کار می کنم و در اون احتیاج دارم که یک داده ی 24 بیتی رو از طریق ازتباط spi دریافت بکنم و اونو توی lcd نمایش بدم ! ولی چون حافظه ی ماژول SPI هشت بیتی هست ( SPDR) برنامم مشکل پیدا کرده و حل نمی شه :sad:

    و البته یه مشکل دیگه هم دارم ، 3 بیت اول ارسالی به میکرو جزوه داده ام نیست و من نمی تونم اون هارو از بیت های اصلی جدا کنم . :cry:

    این مربوط به کارآموزیمه و خیلی درگیرشم ! ممنون میشم اگه کسی راهنماییم بکنه :nerd:

    #2
    پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

    شما زبان C کار کردی؟ با اپراتورهای شیفت میتونی هر دو کار رو انجام بدی (هم 24 بیت رو 8 بیت 8 بیت بگیری و هم از شر اون سه بیت خلاص بشی)

    دیدگاه


      #3
      پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

      انقدر دنبال راه حل گشتم که آخر سر ، هم به زبان c نوشتمش و هم به زبان بیسیک تو بسکام ، ولی دومی بهتر به نتیجه رسیده ! البته هردو ناقصن !

      منظورتون از اپراتور شیفت چیه ؟؟ منظورتون همون عملگر شیفته (>> و << ) ??

      میشه با مثال بیشتر توضیح بدین ؟

      دیدگاه


        #4
        پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

        نوشته اصلی توسط moxasi
        انقدر دنبال راه حل گشتم که آخر سر ، هم به زبان c نوشتمش و هم به زبان بیسیک تو بسکام ، ولی دومی بهتر به نتیجه رسیده ! البته هردو ناقصن
        اتفاقی نگاهم به این تاپیک افتاد و این پستتون ، در بیسیک میتونید این کارو خیلی ساده با ی عملیات تبدیل رشته و عدد انجام بدین
        به طور مثال من این کارو برای i2c انجام دادم تا هر حجم اطلاعات عددی رو ارسال و دریافت کنم

        مقدار عددی رو به رشته تبدیل میکنیم با استفاده از یک حلقه اطلاعات عددی که الان در قالب یک رشته هستند رو جدا میکنیم و هر کاراکتر رو به صورت هشت بیتی ارسال میکنیم در سمت گیرنده هم تعیین میکنیم یک داده خاص رو به عنوان داده پایانی بگیره و از کل رشته حذف و سپس تبدیل مقدار عددی کنه یا اینکه با توجه به فاصله زمانی های دریافت داده مشخص میکنید اگه بعد مثلا 40 میلی ثانیه اطلاعات نیومد پایان در نظر بگیره

        ولی اگه فرستنده شما میکرو نیست و ی ماژوله فرضا که 24 بیت ارسال میکنه و شما فقط باید بگیرید میتونید با ی حلقه تک تک بیت ها رو بگیرید بچینین کنار هم در قالب ی رشته بعدش در صورت نیاز اون رشته رو به قالب عددی تبدیل کنید

        تو سی هم باید بشه من این کارو نکردم هنوز تو سی!
        اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

        دیدگاه


          #5
          پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

          بله داده از یک ماژول دریافت میشه ! اون 24 بیت برای میکرو ارسال میکنه !

          ممنون از توضیحاتتون :smile:

          تست میکنم و نتیجه رو همین جا اعلام میکنم ، انشاالله که جواب بده :biggrin:

          دیدگاه


            #6
            پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

            میشه یکی بیشتر توضیح بده ؟ با مثال :sad:

            من برای راحت کردن کارم ماژولمو عوض کردم و یک 16 بیتی انتخاب کردم . و تونستم داده ام رو درست در lcd ببینم

            الان فقط2 مشکل دارم :

            1 - 1 بیت اول از اطلاعات دریافتی «علامت» هست و نمی تونم به تنهایی تشخیصش بدم

            2 - بیت سوم از آخر رو هم که جزو داده ام نیست باید به تنهایی بتونم بخونم لازمش دارم که نمی تونم :cry2:

            اطلاعات دریافتی میکرو :



            میشه لطفاً یکی کمکم بکنه ؟ فقط لطفاً توضیح خالی ندین با مثال بگید ! با کد هاش که راحت تر متوجه بشم
            با تشکر از همه

            دیدگاه


              #7
              پاسخ : ذخیره اطلاعات 24 بیتی در میکرو کنترلر avr

              این فایل رو بگیرید با همین روش ماژول rfid em18 رو راه اندازی کرده
              به عنوان مثال
              http://uplod.ir/s9jt4es9bm4s/EM-18.rar.htm
              اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

              دیدگاه

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