اطلاعیه

Collapse
No announcement yet.

نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

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

    نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

    با سلام
    فرض کنیم 4 متغییر a,b,c,d داریم که هر کدام یک مقدار متفاوت است . و در یک فاصله زمانی دائما در حال افزایش هستند یا به عبارتی تغییر میکنند .
    میخواهیم این 4 متغییر را در حافظه داخلی avr در بسکام ثبت کنیم (یعنی یک سری مقادیر ثابت جهت مقایسه مثلا a=20 و b=11 و c=16 و d=44 ) به طوریکه زمانیکه هر 4 متغییر که در برنامه در حال تغییر هستند به این مقادیرشان رسیدند و همه شروط برقرار شد شناسایی شود . این مقادیر را دستی ست میکنیم و وقتی که برنامه به خانه های حافظه مربوطه رسید شرط برقرار گردد .
    ضمنا من بیشتر مشکلم بر این مورد است که میخواهم علاوه بر اینکه این مقادیری که ست کردیم پا بر جا باشند و دوباره برای این متغییرها در خانه های حافظه بعدی مقادیر دیگری را ست کنم یعنی مقادیر جدید جایگزین مقادیر قبلی نشود و متغییهای در حال تغییر به هر کدام از شروط که رسیدند شناسایی انجام گردد .

    #2
    پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

    کسی نیست که راهنمایی کنه؟ :read:

    دیدگاه


      #3
      پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

      سلام
      ما که آخرش رو نفهمیدیم
      ولی حواست باشه اگه بخوای دائم رو EEPROM بنویسی زود حافظه ات خراب میشه
      تا 100000 بار یا یکم بیشتر میتونی رایت کنی
      توی رم کار کن اگه لازم شد تو ee بنویس

      دیدگاه


        #4
        پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

        نوشته اصلی توسط fakheri
        سلام
        ما که آخرش رو نفهمیدیم
        ولی حواست باشه اگه بخوای دائم رو EEPROM بنویسی زود حافظه ات خراب میشه
        تا 100000 بار یا یکم بیشتر میتونی رایت کنی
        توی رم کار کن اگه لازم شد تو ee بنویس
        منظور شما اینه که اگه یه متغییر رو توی حافظه EEPROM تعریف کنیم و داخل برنامه مقدارش رو عوض کنیم اگه 100000 بار این تغییر صورت بگیره حافظه EEPROM خراب می شه ؟ درسته ؟

        من دارم ساعت رو توی حافظه EEPROM ذخیره می کنم ( سه تا متغییر از حافظه EEPROM ) که هر یک ثانیه مقدارشون عوض می شه با این توضیح شما فکر کنم برنامه من 27 ساعت کار کنه درسته ؟

        تا اونجا که می دونم اگه با پروگرمر حافظه EEPROM رو پاک کنی و بنویسی ( تعریف متغییر ) تا 100،000 بار می تونی این کار رو بکنی
        و حافظه فلش 10،000 باره که فکر کنم اول این خراب بشه بدو EEPROM
        ندن ساقی صفا اهلی ، غم دنیادن آیریلماز ** گتیر دولدور گینه جامی ، بالیخ دریادن آیریلماز
        غنیمتدیر بو دم ساقی ، گتیر دولدور گنه جامی ** جهاندا رسمدور عاشق ، می و مینادن آیریلماز

        دیدگاه


          #5
          پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

          نوشته اصلی توسط fakheri
          سلام
          ما که آخرش رو نفهمیدیم
          ولی حواست باشه اگه بخوای دائم رو EEPROM بنویسی زود حافظه ات خراب میشه
          تا 100000 بار یا یکم بیشتر میتونی رایت کنی
          توی رم کار کن اگه لازم شد تو ee بنویس
          نه فقط میخواهم که روی حافظه داخلی 4 متغییر را ست کنم یعنی 4 خانه از حافظه را به این 4 متغییر اختصاص بدهم (تا اینجا 4 متغییر ثابت هستند) ، همین متغییرها که در ضمن اجرای برنامه در حال تغییر مقادیر هستند وقتی که به این مقدار از خودشان رسیدند مقایسه انجام شود .
          یعنی روی حافظه داخلی فقط 4 متغییر قرار میگیرد و تغییر و یا افزایش یا کاهشی وجود ندارد .

          دیدگاه


            #6
            پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

            لازم به ذکر هست که فقط اون یه خونه خراب میشه
            یعنی عمر هر خونه 100000 بار هست - البته عمر دقیق رو توی دیتا شیت نوشته
            یه تکنیک دیگه هم هست - اینکه هر یه مدت یه بار آدرس نوشتن خونه هارو متناوبا عوض کنی

            دیدگاه


              #7
              پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

              نوشته اصلی توسط fakheri
              لازم به ذکر هست که فقط اون یه خونه خراب میشه
              یعنی عمر هر خونه 100000 بار هست - البته عمر دقیق رو توی دیتا شیت نوشته
              یه تکنیک دیگه هم هست - اینکه هر یه مدت یه بار آدرس نوشتن خونه هارو متناوبا عوض کنی
              من مشکلی با استفاده روزمره و معمول با eeprom ندارم . مشکل من در این است که فرض کنیم 4 تا متغییر ساعت و دقیقه و روز و ماه داریم ، من میخواهم که در 4 خانه از حافظه مثلا ساعت 2:10 را ست کنم در تاریخ 31/4
              . این کار انجام میشود ولی مشکل اصلی من در این است که میخواهم این مقادیر بماند و مثلا ساعت 2:15 را در تاریخ 1/5 ست کنم و برای ساعت و تاریخهای دیگر به همین صورت .
              ولی الان وقتی که ساعت و تاریخ اول را ست میکنم ، برای دومی دیگر نمیتوان از خانه های دیگری استفاده کنم و مقادیر جدید جایگزین قبلی ها میشود .
              دکمه هایی که برای ست کردن ساعت و تاریخ استفاده میکن ثابت است چون که نمیشود از تعداد زیادی دکمه استفاده کرد .

              دیدگاه


                #8
                پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                کسی نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :rolleyes:

                دیدگاه


                  #9
                  پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                  اگه ساعت لازم داری
                  pcf8583 یا ds1307
                  رم هم داره ds1307 هم باطری پشتیبان را ساپورت میکنه
                  هميشه به ياد خدا باش !

                  دیدگاه


                    #10
                    پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                    نوشته اصلی توسط پژمان اکبری
                    اگه ساعت لازم داری
                    pcf8583 یا ds1307
                    رم هم داره ds1307 هم باطری پشتیبان را ساپورت میکنه
                    ساعت که ساخته ام ، میخواهم که دقیقه و ساعت و روز و ماه را که ساعت نشون میده توی ایپیرام ذخیره کنم .
                    البته این کار را هم کرده ام و مشکلی نیست ، فقط میخواهم غیر از مقادیر اولیه ای که به عنوان دقیقه و ساعت و روز و ماه ذخیره کرده ام در همان خانه های حافظه بای بمانند و مقادیر دیگر را در خانه های دیگر حافظه قرار بدم بدون اینکه آن مقادیر اولیه از بین بروند ، یعنی مقادیر جدید جایگزین مقادیر قبل نشوند .

                    دیدگاه


                      #11
                      پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                      نوشته اصلی توسط mehran_1360
                      ساعت که ساخته ام ، میخواهم که دقیقه و ساعت و روز و ماه را که ساعت نشون میده توی ایپیرام ذخیره کنم .
                      البته این کار را هم کرده ام و مشکلی نیست ، فقط میخواهم غیر از مقادیر اولیه ای که به عنوان دقیقه و ساعت و روز و ماه ذخیره کرده ام در همان خانه های حافظه بای بمانند و مقادیر دیگر را در خانه های دیگر حافظه قرار بدم بدون اینکه آن مقادیر اولیه از بین بروند ، یعنی مقادیر جدید جایگزین مقادیر قبل نشوند .
                      طبیعتا شما اینکار رو تا بی نهایت نمیتونید ادامه بدید، چرا که حافظه EEPROM بی نهایت نیست!
                      به نظرم شما یک مقداری رو در نظر بگیرید، مثلا بگید من می خوام 100 تا تاریخ و ساعت ذخیره کنم، اونوقت یک آرایه 100تایی از متغیر مناسب می سازید و داده هاتون رو داخلش ذخیره می کنید.
                      اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                      دیدگاه


                        #12
                        پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                        نوشته اصلی توسط ☺بابابرقی☺
                        طبیعتا شما اینکار رو تا بی نهایت نمیتونید ادامه بدید، چرا که حافظه EEPROM بی نهایت نیست!
                        به نظرم شما یک مقداری رو در نظر بگیرید، مثلا بگید من می خوام 100 تا تاریخ و ساعت ذخیره کنم، اونوقت یک آرایه 100تایی از متغیر مناسب می سازید و داده هاتون رو داخلش ذخیره می کنید.
                        لطفا بیشتر توضیح بدهید و اگر یک نمونه بگذارید تا بهتر درکش انجام بشه ممنون میشم

                        دیدگاه


                          #13
                          پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                          نوشته اصلی توسط mehran_1360
                          لطفا بیشتر توضیح بدهید و اگر یک نمونه بگذارید تا بهتر درکش انجام بشه ممنون میشم
                          یک سوال:
                          هدف شما از این کار چیه؟ تا چند تاریخ و یا زمان رو مدنظر دارید که ذخیره کنید؟

                          به عنوان یک مثال میشه از کدی شبیه این استفاده کرد:

                          کد:
                          [ltr]
                          eeprom long int time[100];
                          eeprom long int date[100];
                          long int temp;
                          
                          unsigned char eeprom_time_cntr=0, eeprom_date_cntr=0;
                          
                          .
                          .
                          .
                          .
                          
                          rtc_get_time(&hour&min,&seco);
                          .
                          .
                          {
                          temp= seco + min*100 + hour*10000;
                          time[eeprom_time_cntr]= temp;
                          eeprom_time_cntr++;
                          }
                          .
                          .
                          .
                          .
                          .
                          
                          rtc_get_date(&date, &month, &year);
                          .
                          .
                          {
                          temp= date + month*100 + year*10000;
                          date[eeprom_date_cntr]= temp;
                          eeprom_time_cntr+;
                          }
                          [/ltr]
                          اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                          دیدگاه


                            #14
                            پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                            حافظه های eeprom اتمل 1.000.000 بار قابل نوشت هستن
                            طبق دیتا شیت
                            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                            تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                            دیدگاه


                              #15
                              پاسخ : نوشتن و مقایسه تعدادی متغییر در حافظه eeprom

                              نوشته اصلی توسط n340
                              حافظه های eeprom اتمل 1.000.000 بار قابل نوشت هستن
                              طبق دیتا شیت
                              البته 10هزار بار
                              حتما اشتباه تایپی بوده :agree:

                              اگه این دوستمون بخواد هر یک ساعت اطلاعات رو ذخیره کنه، روی یک خونه از حافظه حداکثر میتونه 1.1سال مداوم بنویسه!
                              اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                              دیدگاه

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