اطلاعیه

Collapse
No announcement yet.

ذخیره اطلاعات در حافظه فلش میکرو

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

    ذخیره اطلاعات در حافظه فلش میکرو

    سلام. میخواهم دیتارو توسط سنسور lm335 هر 1دقیقه یکبار بگیرم ، با مقدار قبلی در حافظه فلش میکرو جمع کرده و دوباره ذخیره کنم.
    دنبال برنامه به زبان c در کدویژن هستم. برنامه نوشتن در حافظه eeprom رادارم اما اینو نمیخوام. میخوام در حافظه فلش میکرو atmega8 ذخیره بشه
    اگه کسی برنامه داره یا میتونه بنویسه کمکم کنه لطفا. عجله دارم..

    #2
    پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

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

    دیدگاه


      #3
      پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

      شاید بشه با بوت لودر انجامش بدی
      ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

      امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

      دیدگاه


        #4
        پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

        نوشته اصلی توسط sadeghmojtabaei
        در حین اجرای برنامه نمیتونید چیزی داخل حافظه فلش ذخیره کنید. فقط پروگرمر می تونه حافظه فلش را تغییر بده. برای ذخیره سازی همیشگی فقط از eeprom استفاده میشه.
        در حین اجرای برنامه میشه توی حافظه فلش هم نوشت.
        من برنامه ای دارم اما به زبان اسمبلی هست.

        دیدگاه


          #5
          پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

          نوشته اصلی توسط ی نفر
          در حین اجرای برنامه میشه توی حافظه فلش هم نوشت.
          من برنامه ای دارم اما به زبان اسمبلی هست.
          ببخشید دوست عزیز میشه برنامتون رو بزارین ما هم استفاده کنیم؟
          من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
          آلبرت اینشتین
          منبع: http://fa.wikiquote.org

          دیدگاه


            #6
            پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

            نوشته اصلی توسط ی نفر
            در حین اجرای برنامه میشه توی حافظه فلش هم نوشت.
            من برنامه ای دارم اما به زبان اسمبلی هست.
            الان که این را گفتید یادم اومد که آقای کی نژاد توی یکی از تاپیک ها در همین مورد گفته بودند که یک دستور اسمبلی برای تغییر در حافظه فلش وجود داره. اما خوب این کار مطمئنا به این راحتی ها نیست. بعدشم وقتی حافظه هایی مثل eeprom یا sd وجود دارند دیگه نیازی به این دردسر ها نیست.

            دیدگاه


              #7
              پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

              شما نمی تونید دائم روی حافظه فلش بنویسی به این دلیل
              128K Bytes of In-System Reprogrammable Flash
              Endurance: 1,000 Write/Erase Cycles
              شما بیا روی sramبنویس و زمانی که میکرو خاموش می کنی به مدت چند ثانیه با باطری یا هرچیز ه دیگه بیاد اطلاعاتو روی ایپروم بنویسه

              دیدگاه


                #8
                پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                مرسی دوستان عزیز از جوابهاتون
                راستش نمیدونم خودم. استاد فرمودن تو فلش ذخیره بشه ، درحالیکه به گفته شما میشه تو eeprom نوشت. حالا من دوباره از استاد بپرسم ببینم چی میگن
                درمورد برنامه هم، فعلا ناقصه. پروژه که تموم شد، جواب که داد اگه خواستین میذارم

                دیدگاه


                  #9
                  پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                  نوشته اصلی توسط maryam220
                  سلام. میخواهم دیتارو توسط سنسور lm335 هر 1دقیقه یکبار بگیرم ، با مقدار قبلی در حافظه فلش میکرو جمع کرده و دوباره ذخیره کنم.
                  دنبال برنامه به زبان c در کدویژن هستم. برنامه نوشتن در حافظه eeprom رادارم اما اینو نمیخوام. میخوام در حافظه فلش میکرو atmega8 ذخیره بشه
                  اگه کسی برنامه داره یا میتونه بنویسه کمکم کنه لطفا. عجله دارم..
                  مشکلی نیست من دقیقا همین پروژه رو با lm35 و mega 32 انجام دادم شما اگه یه متغیر رو ساده تعریف کنید ،
                  (مثلا: unsigned char temp ) توی sram ذخیره میشه ولی اگه میخواین مقدارش بعد از قطع تغذیه صفر نشه فقط کافیه اون رو از نوع دایمی flash یا eeprom تعریف کنید به این صورت:
                  ;flash unsigned char temp
                  یا
                  ;eeprom unsigned char temp

                  دیدگاه


                    #10
                    پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                    میشه برنامه و مدارشو برام بذارید ببینم؟
                    اونجورکه میگید ساده نیست
                    قسمتی از برنامه به این صورت است :

                    unsigned char sec,buffer[16],hi_temp,low_temp;
                    unsigned char data,bitcount=11; // holds the received scan code
                    int temperature,last_temp,temp;

                    if(eeprom_read_word(last_temp_ee)>65530){eeprom _update_word(last_temp_ee,25);}
                    if(eeprom_read_byte(low_temp_ee)>250){eeprom_up date_byte(low_temp_ee,20);}
                    if(eeprom_read_byte(hi_temp_ee)>250){eeprom_upd ate_byte(hi_temp_ee,35);}
                    low_temp = eeprom_read_byte(low_temp_ee);
                    hi_temp = eeprom_read_byte(hi_temp_ee);

                    یعنی اینجا فقط بجای eeprom بذارم flash ؟
                    پسوند ee چی میشه پس؟

                    دیدگاه


                      #11
                      پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                      در ضمن چون باید مصرف توان پایین باشد.. از winavr و mega8 سری atmel استفاده شده

                      دیدگاه


                        #12
                        پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                        اینم بگم که همیشه دیتارو ذخیره نمیکنه.. هر1دقیقه یکبار دمارو میگیره و اگه بین دومقدار بود اونوقت با مقدارقبلی در حافظه جمع کرده و دوباره ذخیره میکند.

                        دیدگاه


                          #13
                          پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                          دستور spm در اسمبلی اینکارو انجام میده ولی ظاهرا برای میکروهایی هست که بالای 64 کیلو بایت حافظه دارن.

                          برای زبان c هم اینو پیداکردم:
                          http://www.atmel.com/Images/doc2575.pdf
                          من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                          آلبرت اینشتین
                          منبع: http://fa.wikiquote.org

                          دیدگاه


                            #14
                            پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                            میکرو هایی که قسمت bootloader جداگانه دارند دستور spm فقط در ناحیه bootloader قابل اجرا است و در ناحیه application قابل استفاده نیست .

                            ولی در میکروهایی که این قسمت وجود ندارد از application هم قابل اجراست .
                            از جمله ی رفتگان این راه دراز
                            باز آمده ای کو که به ما گوید راز
                            هان بر سر این دو راهه از روی نیاز
                            چیزی نگذاری که نمی آیی باز

                            دیدگاه


                              #15
                              پاسخ : ذخیره اطلاعات در حافظه فلش میکرو

                              نوشته اصلی توسط maryam220
                              میشه برنامه و مدارشو برام بذارید ببینم؟
                              اونجورکه میگید ساده نیست
                              قسمتی از برنامه به این صورت است :

                              unsigned char sec,buffer[16],hi_temp,low_temp;
                              unsigned char data,bitcount=11; // holds the received scan code
                              int temperature,last_temp,temp;

                              if(eeprom_read_word(last_temp_ee)>65530){eeprom _update_word(last_temp_ee,25);}
                              if(eeprom_read_byte(low_temp_ee)>250){eeprom_up date_byte(low_temp_ee,20);}
                              if(eeprom_read_byte(hi_temp_ee)>250){eeprom_upd ate_byte(hi_temp_ee,35);}
                              low_temp = eeprom_read_byte(low_temp_ee);
                              hi_temp = eeprom_read_byte(hi_temp_ee);

                              یعنی اینجا فقط بجای eeprom بذارم flash ؟
                              پسوند ee چی میشه پس؟
                              این چی هست؟! winavr ؟
                              من با codevision کار میکنم وتوی codevision خیلی خیلی راحته استفاده از mega8 هم هیچ مشکلی نداره اگه خواستید هم شماتیک هم برنامه رو (البته برای codevision) میذارم که ببینید چقدر ساده است

                              دیدگاه

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