اطلاعیه

Collapse
No announcement yet.

صفر کردن تمام بیتهای eeprom

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

    صفر کردن تمام بیتهای eeprom

    سلام اقا این مقدار eeprom میکرو وقتی erase میکنیم همه میشه 1 (FF)چطوری میشه کاری کرد هنگام پروگرام کردن همشون بشه 0 اخه من تو برنامم سطری گزاشتم اگه مقدار متغیر اپرام 0 بود و یه متغیر دیگه از اپرام بیشتر بود متغیرو بریزه تو اپرام و... اما با این حالت اپرام هیچ گاه مقادیر نگهداری نمیشه و اگر بخواهم اول برنامه مقدار اپرام رو 0 کنم هر بار که میکرو روشن میشه مقدار قبلی که نگهداری می کرده می پره چیکار کنم!!!! :nerd: :nerd: :nerd: :cry2:
    کم باش اصلا هم نگران کم بودنت نباش!!!
    اونی که اگر کم باشی گمت میکنه, همونیه که اگر زیاد باشی حیفت میکنه!!
    فقط خوب باش. خوب بودن به اندازه کافی متفاوتت میکنه.

    #2
    پاسخ : صفر کردن تمام بیتهای eeprom

    با سلام
    تو برنامه اونجا که متغیر رو تعریف میکنید، مقدار اولیه اش رو صفر بگزارید .
    بعد از کامپایل یه فایل برای EEPROM تولید میشه اون رو هم پروگرام کنید داخل EEPROM میکرو.

    دیدگاه


      #3
      پاسخ : صفر کردن تمام بیتهای eeprom

      اینجوری مقدار دهی اولیه میشه؟؟
      Dim Km1|0 As Eram Byte
      کم باش اصلا هم نگران کم بودنت نباش!!!
      اونی که اگر کم باشی گمت میکنه, همونیه که اگر زیاد باشی حیفت میکنه!!
      فقط خوب باش. خوب بودن به اندازه کافی متفاوتت میکنه.

      دیدگاه


        #4
        پاسخ : صفر کردن تمام بیتهای eeprom

        متاسفانه بیسیک اش رو بلد نیستم سرچم کردم چیزی پیدا نکردم.

        دیدگاه


          #5
          پاسخ : صفر کردن تمام بیتهای eeprom

          کسی پیدا نمیشه بگه چطوری ؟؟؟؟

          Dim Km As Eram Byte
          حالا اینو چطوری مقدار دهی اولیه کنم که فقط بار اول مقدار دهی شه تو برنامه مقدار جدید دادم میکرو خاموش شد بار بعد مقدار تو برنامه رو فراخوانی کنم. نه مقداری که اینجا برای اولیه دادم !!!!
          کم باش اصلا هم نگران کم بودنت نباش!!!
          اونی که اگر کم باشی گمت میکنه, همونیه که اگر زیاد باشی حیفت میکنه!!
          فقط خوب باش. خوب بودن به اندازه کافی متفاوتت میکنه.

          دیدگاه


            #6
            پاسخ : صفر کردن تمام بیتهای eeprom

            اول از همه اینو اینجا میگم چون از دوستی تو نت یاد گرفتم که هرچی بلدی یا میتونی راهنمایی کن یا اگه به نتیجه رسیدی سوال که طرح کردی رو همینجوری ول نکن جوابشو بنویس تا دیگران گیرشون رفع شه و زکات علم رو هم داده باشی خودش میشه منبع برای رجوع دوستانی که بعدا" تو این مسیر حرکت میکنن
            برای حل مشکل بعد یا قیل تعریف متغیر از نوع eram کافیه این 3 خط رو بنویسیم یا اصلا" تو یه پروژ خالی منویس و فایل *.eep که تولید میشه رو با برنامه مریوطه پروگرام کن رو میکرو . روند کار اینجوریه :


            $eeprom
            Data 1 , 285 , 3 , 4
            $data
            یه فایل با پسوند eep. درست میشه اونم وقت پروگرام کردن میکرو بریزید تو حافظه اپرام برای بار اول این مقادیر در میکرو هست تا مقدار جدید تو برنامه رونویسی کنی واین مقادیر هنگام پرو گرام فقط رووش بوده و یهد خاموش روشن رونویسی نمیشه تا توی برنامه رونویسی شه و برای همیشه از بین میره و حالا این مورد کجا کاربرد داره شما یه رمز مثلا" تو میکرو میریزی نیاز نیست تو کد برنامه رمز اولیه رو بنویسی فقط رجوع میدی به متغیر و مقدار اولیه تو متغیر هنگام پروگرامریخته شده.
            حالا از کجا بفهمیم چطوری مقدار دهی اولیه هر متغیر رو انجام بدیم :
            مقدار دیتا 1 در خانه 1 و مقدار 285 در خانه 2 و مقدار هاا تا اخرین بایت اپرا رو میشه مقدار دهی اوله کرد حالا از کجا بفهمم مقدار متغیر 4 اپرام که تعریف کردیم چطوری مقدار اولیه بدم کافیه از اول برنامه به ترتیب تعریف چندمین متغیر از نوع اپرام هست همون عدد رو در دیتا مقدار دلخواه بدیم مثلا" برنامه زیر من میخواهم اپرام
            3 متغیرو مقدار اولیه بدیم

            $regfile = "m8def.dat"
            $crystal = 8000000
            $eeprom
            Data 0 , 255 ,78
            $data

            Dim a As Eram Byte
            Dim b As Eram Byte
            Dim S As word
            Dim T As Byte
            Dim c As Eram Byte
            do
            .
            .
            .
            ..
            .
            loop
            end


            اینجا a مقدار 0 و b مقدار 255 و c مقدار 78 اون t,s هم تعریف کردم که یعنی به ترتیب اپرام از بالا میشه نه به ترتیب تعرف متقیر و... (اینو برا خودم گفتم که اماتورم )جسارت نشه.
            تذکر:
            اگر مقدار متغیر اپرام byte تعریف کردی 1 خانه جلوی خط data , برابر 1 بایته اگر integer یا word بود مقدار 2 خانه پشت هم میشه مقدار متغیر و اگر long یا single بود 4 خانه پشت هم میشه مقدار متغیر اینجا من یک خانه یک خانه چلو رفتم چون همه متغیر هام byte بود و هر خانه هم چلوی خطdata x1,x2,x3 برابر بایت بود :nice: :nice: :applause: :applause:
            کم باش اصلا هم نگران کم بودنت نباش!!!
            اونی که اگر کم باشی گمت میکنه, همونیه که اگر زیاد باشی حیفت میکنه!!
            فقط خوب باش. خوب بودن به اندازه کافی متفاوتت میکنه.

            دیدگاه


              #7
              پاسخ : صفر کردن تمام بیتهای eeprom

              سلام
              آقای mojtaba_led میشه درباره روشی که گفتین بیشتر توضیح بدین؟
              من با C مینویسم و میخوام همین کارا بکنم
              ممنون.

              دیدگاه


                #8
                پاسخ : صفر کردن تمام بیتهای eeprom

                توی c فقط اونجا که متغیر رو تعریف می کنید بهش مقدار اولیه بدید مثلا توی avr-gcc

                چون میخواهیم از eeprom استفاده کنیم اول برنامه هدر eeprom رو اینکلود میکنیم به صورت زیر :
                کد:
                [ltr]
                #include <avr/eeprom.h>
                [/ltr]
                بعد اونجا که متغیر رو تعریف می کنید بهش مقدار اولیه بدید مثلا این جوری :
                کد:
                [ltr]
                uint32_t EEMEM counter_eeprom=0;
                [/ltr]
                یعد که کامپایل کردید علاوه بر فایل هگز یک فایل ایجاد میشه با پسوند eep. اون رو توی eeprom پروگرام کنید.
                تو کامپایلرهای دیگه هم به همین شکل هست، البته توی iar یه سری تنظیمات رو انجام داده باشید که اون فایل eeprom را تولید کند.

                دیدگاه


                  #9
                  پاسخ : صفر کردن تمام بیتهای eeprom

                  من تو codevision مینویسم
                  من اول اومدم به متغیرم مقدار دادم مثلا 0 ،بعد برنامه کامپایل کردم فایل با پسوند .eep را ریختم تو eeprom بعد اومدم مقدار متغیرما پاک کردم که هر بار برنامه بهش مقدار نده بعد دوباره برنامه را کامپایل کردم این دفعه فلشا پروگرام کردم شد(البته دیگه میکرو را erase نمیکنم که eeprom پاک بشه) :biggrin:
                  خیلی ممنون

                  دیدگاه


                    #10
                    ====

                    ممنون دوست عزیز.
                    کم باش اصلا هم نگران کم بودنت نباش!!!
                    اونی که اگر کم باشی گمت میکنه, همونیه که اگر زیاد باشی حیفت میکنه!!
                    فقط خوب باش. خوب بودن به اندازه کافی متفاوتت میکنه.

                    دیدگاه

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