NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3863 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 4 از 4

موضوع: مشکل عجیب حافظه ایتوپرام

  1. #1
    کاربر فعال
    تاریخ عضویت
    Jan 2013
    نام
    عربعامری
    نوشته ها
    148
    تشکر
    25
    تشکر شده 92 بار در 60 پست

    پیش فرض مشکل عجیب حافظه ایتوپرام

    سلام.من برای ذخیره ریموتها در مگا 16 یک متغیر
    کد:
    Dim Eevar(100) As Eram Long
    با یک شمارنده که تا 100 میره تعریف کردم.حالا وقتی ریموت لرن میکنم بجای اینکه تا 100 تا بشه لرن کرد فقط 23 تا میهشه و بیست و چهارمین همه رو پاک میکنه و خودش لرن میشه.و دوباره از نوع.
    من از مگا 32 هم استفاده کردم همین مشکل رو داشت کسی میدونه مشکل کجاست؟
    کد:
    If Rnumber = 0 Then                                         ' agar avalin remote ast ke learn mishavad
    Incr Rnumber
    Rnumber_e = Rnumber
    Waitms 10
    Ra = Address
    Eevar(rnumber) = Ra
    Waitms 10
    Exit Do
       Else                                                     'address avalin khane baraye zakhire address remote
    For I = 1 To Rnumber
    Ra = Eevar(i)
    If Ra = Address Then                                        'agar address remote tekrari bod yani ghablan learn shode
    Set Buzz
    Wait 1
    Reset Buzz
    Error = 1
    Exit For
    Else
    Error = 0
    End If
    Next
    If Error = 0 Then                                           ' agar tekrari nabod
    Incr Rnumber                                                'be meghdare rnumber ke index tedade remote haye learn shode ast yek vahed ezafe kon
    If Rnumber > 100 Then                                       'agar bishtar az 100 remote learn shavad
    Rnumber = 100
    Set Buzz
    Wait 5
    Reset Buzz
    Else                                                        'agar kamtar az 100 remote bod
    Rnumber_e = Rnumber                                         'meghdare rnumber ra dar eeprom zakhore mikonad
    Ra = Address
    Eevar(rnumber) = Ra

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Jan 2013
    نام
    عربعامری
    نوشته ها
    148
    تشکر
    25
    تشکر شده 92 بار در 60 پست

    پیش فرض

    کسی نمیدونه؟بهتر اینجوری بپرسم چرا 100 متغیر long در حافظه داخلی میکرو جا نمیشه با اینکه کامپایر ارور نمیگیره

  4. #3
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام

    Dim Eevar(100) As Eram Long
    توی دستور بالا شما 100 متغیر از نوع Long معرفی کردید که قرار در حافظه ی eeprom میکروکنترلر ذخیره بشه .
    میکرو کنترلر اتمگا 16 دارای 512 بایت یا 4096 بیت (512 * 8 ) حافظه ی eeprom هست . هر متغیر لانگ دارای طول 4 بایت یا 32 بیت هست .
    اگه فضای ما 4096 باشه ، ما چند تا متغیر 32 بیتی میتونیم تو اون ذخیره کنیم ؟ جواب میشه 128 تا ، پش مشکلی توی مقدار حافظه نیست .
    بهتره برنامه رو توی نرم افزار پروتوس به صورت خط به خط دیباگ کنید تا ببنید چه بلایی سر متغیر 23 میاد !

  5. کاربران : 4 تشکر کرده اند از شما 1nafar برای ارسال این پست سودمند:


  6. #4
    کاربر فعال
    تاریخ عضویت
    Jan 2013
    نام
    عربعامری
    نوشته ها
    148
    تشکر
    25
    تشکر شده 92 بار در 60 پست

    پیش فرض

    نمیدونم چی میشه.با 32 که 1kb ایتوپرام داره بازم همین مشکل رو دارم.من برای سیو کردم ریموت 20 تا بیت دارم.به جای long از چه متغیری استفاده کنم .برنامه چون باید 23 تا ریموت دونه دونه لرن کنم فکر نمیکنم بشه دیباگ کرد.کسی به چیزی مشکوک نیست؟امکان داره ارایش بیتهای سیو شده در هر ارایه به هم بریزه؟

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •