اطلاعیه

Collapse
No announcement yet.

کمک در استفاده از EEPROM میکرو MEGA128

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

    کمک در استفاده از EEPROM میکرو MEGA128

    با سلام خدمت دوستان عزیز
    من می خواهم از EEPROM داخلی MEGA128 استفاده کنم داخل دیتاشیت کد های زیر را قرار داده بود ولی وقتی در کدویژن می زنم ریجسترها را نمی شناسه
    کسی با EEPROM داخلی میکرو کنترلر کار کرده که در این زمینه بتونه من را راهنمایی بکنه

    با تشکر

    کد:
    [left]
    void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
    {
    /* Wait for completion of previous write */
    while(EECR & (1<<EEWE))
    ;
    /* Set up address and data registers */
    EEAR = uiAddress;
    EEDR = ucData;
    /* Write logical one to EEMWE */
    EECR |= (1<<EEMWE);
    /* Start eeprom write by setting EEWE */
    EECR |= (1<<EEWE);
    }
    
    [/left]

    #2
    پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

    توی کدویژن شما بدون درگیری با ریجستر های EEPROM هم میتونید ازش استفاده کنید.شما متغیر رو اینطوری تعریف کنید کدویژن خودش ریجستر ها رو مقدار میده:
    eeprom unsigned char var;
    eeprom unsigned int arr[20];
    کدی که نوشتید به نظر من درسته ولی اینکه چرا کدویژن ریجستر ها رو نمیشناسه واقعا عجیبه.چون من هدر فایلشو چک کردم .اسم ریجستر ها EEPROM تعریف شده بود :agree:
    راستی یه مورد دیگه :
    عبارت های EEWE وEEMWE رو تو اول برنامه define کردید؟اینها باید مقادیر 1 و 2 رو داشته باشند!!!
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    دیدگاه


      #3
      پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

      پس نیازی به آدرس دهی نیست خدا رو شکر من فکر کردم که مثل EEPROMهای خارجی باید ادرس بدهیم پس خیلی ساده تر هستش
      نه من define نکردم پس مشکل از اینجاست چون فکر می کردم که ریجسترهای میکروکنترلر هستند
      با تشکر

      دیدگاه


        #4
        پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

        من متغیر ارایه ای دو بعدی را با استفاده از تعریف eeprom ایجاد کردم و بعد مقادیر یک متغیر دیگر RAM را به اون نسبت دادم که اطلاعات متغیر در eeprom ذخیره شود
        ولی در کامپایل این error را نشان میدهد
        the expression must be a modifiable lvalue
        ابعاد دو ارایه با هم برابر هست!

        دیدگاه


          #5
          پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

          کسی اطلاعی نداره مشکل از کجاست؟
          خیلی فوری و حیاتی هستش :sad:

          دیدگاه


            #6
            پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

            http://www.eca.ir/forum2/index.php?topic=31237.0
            فرزندم در راه است

            دیدگاه


              #7
              پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

              با تشکر ولی این لینک متناسب با مشکل من نیست

              دیدگاه


                #8
                پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                نوشته اصلی توسط naeemafar
                من متغیر ارایه ای دو بعدی را با استفاده از تعریف eeprom ایجاد کردم و بعد مقادیر یک متغیر دیگر RAM را به اون نسبت دادم که اطلاعات متغیر در eeprom ذخیره شود
                ولی در کامپایل این error را نشان میدهد
                the expression must be a modifiable lvalue
                ابعاد دو ارایه با هم برابر هست!
                چطور این دو آرایه رو به هم نسبت دادید؟
                میشه اون قسمت از برنامتون رو بزارید؟
                [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                دیدگاه


                  #9
                  پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                  همش همینه

                  eeprom char med_name_ee [20][16];
                  eeprom char med_h_ee [23][7];
                  char med_name [20][16];
                  char med_h [23][7];

                  و


                  med_name_ee=med_name;
                  med_h_ee=med_h;

                  دیدگاه


                    #10
                    پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                    تعریف متغیر هاتون درسته ولی درست با هم برابر نکردیدشون. از نظر تئوری چون اندازه ی این دو آرایه با هم برابر هستند و از یک نوع داده ای هستند با همسان سازی آدرس های پوینتر هاشون میشه فرض کرد که این دوتا آرایه در حقیقت یکی هستند.اما به دلیل اینکه شما با یه اشتباه میتونید کل اطلاعات رم رو بهم بریزید کامپایلر ها اجازه ی کامپایل این نوع تعریف رو نمیدند و شما میتونید مثل من از یه for برای این کار استفاده کنید:
                    کد:
                    unsigned char i,j;
                    
                    for(i=0;i<20;i++)
                    	for(j=0;j<16:j++)
                    		med_name_ee[i][j]=med_name[i][j];
                    با این ترتیب شما خیالتون از همه چیز راحت میشه.
                    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                    دیدگاه


                      #11
                      پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                      ببخشید یک سوال دیگه
                      MEGA128 یک فیوز بیت برای EEPROM داره این فیور بیت باید یک باشه یا صفر؟

                      دیدگاه


                        #12
                        پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                        بنده هم همین مشکل را دارم. البته برای من پیغام می دهد که متغیر ها نیاز به initialaze دارند البته warn میدهد.
                        بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
                        موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
                        نلسون ماندلا

                        دیدگاه


                          #13
                          پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                          من با این EEPROM داخلی شدیدا به مشکل برخورد کردم
                          این فیوز بیتش مربوط به چی هستش

                          دیدگاه


                            #14
                            پاسخ : کمک در استفاده از EEPROM مکرو MEGA128

                            در کدویژن رو نمیدونم ول در بسکام برا تعن پاک شدن یا حفظ اطلاعاتeeprom در هنگام پاک کردن حافظه میکرو و دوباره پروگرم کردن میکروست
                            پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                            دیدگاه


                              #15
                              پاسخ : کمک در استفاده از EEPROM میکرو MEGA128

                              اون بیت مربوط به پاک شدن EEprom هنگام پروگرم کردن میکرو هست کهeeprom پاک بشه یا نه!
                              حالا به چه درد میخوره. اگه شما میخوای که محتویات eeprom موقع پروگرم کردن با مقادیر جدید (همونایی که با کلمه کلیدی eeprom nhog fvkhli تعریف و اینیشیالایز کردی) پر بشهT خب باید مقادیر قبلی رو پاک کنی و جدیدا رو توش بنویسی. اما اگه نمیخوای این اتفاق بیفته(وقتی که داده های قبلی داخل eeprom بدرد میخوره ) خب باید اونو غیر فعال کنی.
                              در AVR هم که 0 بودن به معنای فعال بودن هست و 1 یعنی غیر فعال

                              دیدگاه

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