ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2008/11/14
    104
    0

    نوشتن و خواندن از eeprom داخلي

    سلام بر دوستان عزيز

    چطور مي تونم يه مقدار ثابت رو در eeprom داخلي ميكرو با استفاده از ccs بنويسم؟ من اين كار رو با استفاده از توابع write_eeprom وread_eeprom انجام مي دم، ولي مقادير به صورت ثابت نيستن و هر بار با ريست شدن ميكرو اين توابع اجرا شده و مقادير از اول نوشته مي شن.

    يادم مياد وقتي با كدويإ¾ژن مي خواستم همچين كاري انجام بدم، مثلا متغيير رو به صورت زير تعريف مي كردم :

    کد:
    eeprom char mychar;
    دنبال همچين دستوري واسه ccs مي گردم. در ضمن ازميكروي سري 18F به شماره ي 18f4620 كه 1كيلو بايت eeprom داره استفاده مي كنم. پيشاپيش ممنون از راهنماييتون
    مشکلی نیست که آسان نشود مرد میخواهد که هراسان نشود
  2. #2
    2011/01/29
    تهران
    484
    16

    پاسخ : نوشتن و خواندن از eeprom داخلي

    سلام
    منظورتون رو درست نگرفتم
    اگر منظورتون فقط يک مقدار ثابته خوب اين ميشه همون ثابت ها ، constants يا تعاريف که با دستور define در ccs تعريف ميشن.
    اگر منظورتون مقدار دهي اوليه به متغير هاي داخل EEPROM هست يا اينکه مي خواين از يک اسم براي کار با آدرس EEPROM استفاده کنيد، اين نمونه رو که من از خودم در آوردم و ازش استفاده مي کنم و مشکلي باهاش نداشتم رو نگاه کنيد. اگر متوجه نشديد بگيد خدمتتون عرض کنم:

    کد:
    //-----------------------EEPROM--------------------------------
    #define min_add   0x10
    #define hou_add   0x20
    #define all_add   0x30
    #define all_min_add 0x38//end is 0x3f
    #define firsttime  0x40
    #define last_takhir_add 0x50
    #define filter_finished_add 0x60
    #define byhand_add  0x70
    #define byfoot_add  0x80
    #define count_add  0x90
    #define version_add 0xa0
    #define service_add 0xb0
    //-----------------------Values-----------------------------
    #define notfirsttime 0x55
    کد:
    if(read_eeprom(firsttime)!=notfirsttime)//its first time
      {
       write_eeprom(firsttime,notfirsttime);
       takhir=7000;
       min=0;
       hou=0;
       filter_finished=0;
       write_eeprom(min_add,min);
       write_eeprom(hou_add,hou);
       write_long_eeprom(last_takhir_add,takhir);
       write_long_eeprom(all_add,0);
       write_eeprom(all_min_add,0);
       write_eeprom(filter_finished_add,0);
       write_eeprom(version_add,1);
       write_eeprom(count_add,1);
       write_eeprom(byhand_add,0);
       write_eeprom(byfoot_add,0);
       write_eeprom(service_add,0);
      }
      else if(read_eeprom(firsttime)==notfirsttime)//machine is used and have some setting from before
      {
       min=read_eeprom(min_add);
       hou=read_eeprom(hou_add);
       takhir=read_long_eeprom(last_takhir_add);
       filter_finished=read_eeprom(filter_finished_add);
       byhand=read_eeprom(byhand_add);
       byfoot=read_eeprom(byfoot_add);
       continuous=read_eeprom(count_add);
       power=continuous;
       service_required=read_eeprom(service_add);
      }
    اين رو البته از وسط برنامه ي يکي از دستگاه هام برداشتم.
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.
  3. #3
    2008/11/14
    104
    0

    پاسخ : نوشتن و خواندن از eeprom داخلي

    سلام

    لوپ كلام هدف من اينه : نوشتن يك سري ديتا روي eeprom ،كه مربوط به كاليبراسيون دستگاه هستن. و قفل كردن eeprom ، در حالي كه فلش لاك نشده باشه. در ضمن ديتاي كاليبراسيون هر دستگاه هم با اون يكي فرق مي كنه.

    البته با همين كلكي كه شما زدي firsttime و notfirsttime مي شه يه كارايي كرد. :smile:

    مشکلی نیست که آسان نشود مرد میخواهد که هراسان نشود
  4. #4
    2011/01/29
    تهران
    484
    16

    پاسخ : نوشتن و خواندن از eeprom داخلي

    نقل قول نوشته اصلی توسط رضا
    سلام

    لوپ كلام هدف من اينه : نوشتن يك سري ديتا روي eeprom ،كه مربوط به كاليبراسيون دستگاه هستن. و قفل كردن eeprom ، در حالي كه فلش لاك نشده باشه. در ضمن ديتاي كاليبراسيون هر دستگاه هم با اون يكي فرق مي كنه.

    البته با همين كلكي كه شما زدي firsttime و notfirsttime مي شه يه كارايي كرد. :smile:

    فقط يادتون باشه که موقع تعريف مقدار براي firsttime variabale اون رو چيزي مثل ff يا 0 نديد . چون ممکنه که اين مقدار پيش فرض حافظه باشه و اونوقت اين کد بي تاثير ميشه.( من اينجا 55 گذاشتم که به عنوان مقدار اوليه چيز بعيديه)
    بد نيست قبل از اين که اين کار رو بکيند با پروگرامر يک آي سي نو رو برداريد eeprom اون رو بخونيد تا يه وقت اين دوتا يکي نباشن
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.
نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. کمک در مورد نوشتن و خواندن از eeprom
    توسط sanei1370 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2016/04/08, 13:41
  2. خواندن و نوشتن در eeprom
    توسط majedhoseini در انجمن میکروکنترلرهای AVR
    پاسخ: 14
    آخرين نوشته: 2014/12/28, 22:02
  3. نحوه نوشتن و خواندن در eeprom داخلي
    توسط hanamohsen در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2013/07/16, 17:56
  4. خواندن و نوشتن در EEPROM
    توسط بسطام بيرامي در انجمن میکروکنترلرهای PIC
    پاسخ: 7
    آخرين نوشته: 2013/02/15, 15:17
  5. مشكل عجيب با نوشتن در EEPROM داخلي در codevision
    توسط ehsan_akbari در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2009/09/04, 14:07

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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