اطلاعیه

Collapse
No announcement yet.

نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

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

    نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

    نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr چطوره کسی میتونه یه مثال بزاره
    جدیدترین ویرایش توسط mfazl22; ۰۷:۵۸ ۱۳۹۷/۱۱/۲۱.
    گاهی نمی شود که نمی شود
    گاهی قرعه نگفته به نام تو می شود
    گاهی گدای گدایی و چاره چیست
    گاهی تمام شهر گدای تو میشود
    ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

    #2
    پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

    شما تک بایت تک بایت میتونید بخونید بنویسید - خب حالا متغییر های int مثلا 2 بایتی هستند - 2 بایت 2 بایت باید ذخیره کنید و بخونید - 2 حالت داره -
    1-این که هر داده کجا ذخیره میکنید رو تو پروژتون مشخص کردید - فلذا داده ها پشت سر هم قرار میگیرند. ( همون 2 بایت 2 بایت میخونید/مینویسید )
    2-مشخص نکردید - بین هر داده -یه بایت خاص میزاری برای جدا کردنشون ( 3 بایت 3 بایت میخونید/مینویسید )
    البته معمولا روش 1 بهتره!
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

      می دونم که تک بایت تک بایت باید بنویسم و بخونم
      مشکل من اینه که نمی دونم چطور 2 بایت یا بیشتر رو بنویسم یا بخونم
      مثلا
      [CPP]
      [FONT=Yekan]
      void I2C_write_1Byte(unsigned char ADDRESS,unsigned char Bite_Nomber,unsigned char valiu)[/FONT]{


      I2C_Start();
      I2C_write(ADDRESS);
      I2C_write(Bite_Nomber);
      I2C_write(Bite_Nomber);
      I2C_write(valiu);
      I2C_Stop();
      _delay_ms(8);
      [FONT=Yekan]}
      [/FONT]
      [/CPP]
      این تابع رو خودم نوشتم کار میکنه ولی برای بیشتر از یک بایت بلد نیستم
      جدیدترین ویرایش توسط mfazl22; ۰۹:۲۳ ۱۳۹۷/۱۱/۲۱.
      گاهی نمی شود که نمی شود
      گاهی قرعه نگفته به نام تو می شود
      گاهی گدای گدایی و چاره چیست
      گاهی تمام شهر گدای تو میشود
      ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

      دیدگاه


        #4
        پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

        در مورد این دو موضوع مطالعه کنید
        * اشاره گرها: اشاره گر به یک متغیر در واقع آدرس کم ارزشترین بایت متغیر رو برمیگردونه
        * typecast : اینکه به کامپایلر بگید یک آدرس از نوع متغیر پند بایتی رو بصورت یک اشاره گر به یک متغیر یک بایتی مورد استفاده قرار بده

        دیدگاه


          #5
          پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

          چندتا راه پیشنهاد میدم :
          1-از کتابخونه های آماده استفاده کنید.
          2-بیرید دیتاشیت آیسی مد نظرو کامل مطالعه کنید
          3-برید دیتاشیت i2c رو کامل مطالعه کنید.
          4-همون کد نوشتن تک بایت رو یه تابع کنید ( اگه تست کردید و جواب داده ) - و از تابع فوق 2 بار استفاده کنید ( مثلا برا int )
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

          اگه دوس دارید سریع به جواب برسید :
          1) قبل از پرسیدن سوال، بسرچید.
          2) سوالاتون رو با جزئیات کامل مطرح کنید.

          دیدگاه


            #6
            پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

            نوشته اصلی توسط md3848 نمایش پست ها
            چندتا راه پیشنهاد میدم :
            1-از کتابخونه های آماده استفاده کنید.
            2-بیرید دیتاشیت آیسی مد نظرو کامل مطالعه کنید
            3-برید دیتاشیت i2c رو کامل مطالعه کنید.
            4-همون کد نوشتن تک بایت رو یه تابع کنید ( اگه تست کردید و جواب داده ) - و از تابع فوق 2 بار استفاده کنید ( مثلا برا int )
            ;کتابخانه شما رو چند بار کار کردم نشد
            جدیدترین ویرایش توسط mfazl22; ۱۹:۵۱ ۱۳۹۷/۱۱/۲۲.
            گاهی نمی شود که نمی شود
            گاهی قرعه نگفته به نام تو می شود
            گاهی گدای گدایی و چاره چیست
            گاهی تمام شهر گدای تو میشود
            ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

            دیدگاه


              #7
              پاسخ : نوشتن و خواندن متغیر هایی از نوع int . float در eeprom خارجی با avr

              فک کنم مشکل شما از کلاک میکرو باشه - ببین تو کدویژن و فیوز بیت ها فرکانس رو چند تنظیم کریید - بنظرم این دو با همدیگه یکسان نیستند و لذا اون تاخیرر 10 میلی ثانیه رخ نمیده ( کمتر رخ میده )
              درضمن تابعی که من استفاده کردم - طبق دیتاشیت اول آدرس دستگاه بعد آدرس 2 بایتی موقعیت ذخیره/خونده شدن دیتا و بعد دیتا میره - اما تو کدی که شما نوشتید در پست اولتون همچین چزی مشاهده نمیشه - من همین آیسی رو برا آرم هم کتابخونشو نوشتم و براحتی متغییر هایی از نوع STRING - INT - FLOAT خوندم و نوشتم - مشکلی هم نبود - که میتونید توابع اینا رو بررسی کنید و ببینید چطوری نوشتم ( eeprom خارجی با lpc1768 -- لینک آخر مطلب رو دانلود کن )
              اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

              اگه دوس دارید سریع به جواب برسید :
              1) قبل از پرسیدن سوال، بسرچید.
              2) سوالاتون رو با جزئیات کامل مطرح کنید.

              دیدگاه

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