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





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









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









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





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

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2007/04/20
    كره زمين
    1,408
    70

    کتابخانه عالی برای eeprom نوشتم !!

    سلام
    یک کتابخونه برای 24c02 نوشتم که نیاز به دونستن ادرس و چند بیتی بودن متغیر نیست فقط بهش میگی برو فلان متغیر رو توی این متغیر(مال ایپرام) ذخیره کن و بعد برای خوندن میگیم فلان متغیر ایپرام رو کپی کن داخل این متغیر!!
    ی پا جدول FAT نوشتم

    خوب توضبحات مهم
    اول این که داخل مین قبل از معرفی کتابخونه ایپرام میایم مقدار i2c مورد نظر رو با تابع برمیگردونیم اینجوری

    I2C_HandleTypeDef read_i2c_in_main (void) {return hi2c1;}

    #include "EEPROM.h"


    مرحله بعد اینجا اسم متغیر هامونو تعریف میکنیم
        enum 
    {
    _x = 0 , // char 1
    _y , // int 2
    _z , // long 4
    _mohsen, //long 4
    _ELEC, //long 4
    _javan , // char 1

    number_of_variables
    }variables;


    مرحله بعد اینجا نوع متغیر رو تعین میکنیم

    int EEPROM_24Cxx::init(void)
    {
    byte_of_valu [_x] = _char;
    byte_of_valu [_y] = _int;
    byte_of_valu [_z] = _long;
    byte_of_valu [_mohsen] = _long;
    byte_of_valu [_ELEC] = _long;
    byte_of_valu [_javan] = _int;


    و در اخر داخل مین برنامه ایپرام را init میکنیم تا جدول ادرس ساخته بشه

    eeprom.init();



    حالا فقط کافیه کد بزنید مثلا

    int intt =0;
    eeprom.write(intt , eeprom._javan);
    HAL_Delay(2);
    eeprom.read(&intt, eeprom._javan);


    حالا از دوستان خواهشی دارم که اگر از کد استفاده کرددند و خطایی دیدند اطلاع بدند رفع کنم!!
    و این که متغیر long رو هنوز اضاف نکرده ام چون مغزم جواب کرده و نمیدونم که چند بایتی هست!!!! حالا واقعا متغیر long چند بایت اشغال میکنه؟؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  2. #2
    2017/08/27
    648
    516

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    #define _bool 1;
    #define _char 1;
    #define _int 2;
    #define _long 4;
    تو هدر فابلت نوشته 4 تا که درسته


  3. #3
    2007/04/20
    كره زمين
    1,408
    70

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    خیالم راحت شد پس امشب long هم اضاف میکنم
  4. #4
    2014/10/05
    1,540
    1,079

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    نقل قول نوشته اصلی توسط mohsen.hex

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    یک کتابخونه برای 24c02 نوشتم که نیاز به دونستن ادرس و چند بیتی بودن متغیر نیست فقط بهش میگی برو فلان متغیر رو توی این متغیر(مال ایپرام) ذخیره کن و بعد برای خوندن میگیم فلان متغیر ایپرام رو کپی کن داخل این متغیر!!
    ی پا جدول FAT نوشتم
    [...]
    با سلام و درود
    اینکه نتیجه ی زحمات خود را جهت کمک به دیگران به اشتراک می گذارید بسیار اقدام شایسته و ارزشمندی است و چنین مواردی موجب ترغیب سایرین جهت اشتراک گذاری دانسته ها و دستاوردها سودمند خود می شود.
  5. #5
    2016/07/05
    8
    5

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    دوست عزیز بسیار عالی بود فقط اگر بتونید برای ایپرام های 24c512 هم یه کتابخونه بنویسید خیلی عالی میشه یا مثلا یه کتابخونه که همه سری های 24cxx از 24c02 الی 24c1024 رو پشتیبانی کنه . من خودم برای 24c16 یه کتابخونه درست کردم که بد هم نشوده داره خوب کار میکنه.اگر کسی از دوستان نیاز داشت بگه ارسال کنم
  6. #6
    2012/12/30
    بوشهر
    3,204
    1,105

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    نقل قول نوشته اصلی توسط mohsen.hex

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...
    حالا از دوستان خواهشی دارم که اگر از کد استفاده کرددند و خطایی دیدند اطلاع بدند رفع کنم!!
    و این که متغیر long رو هنوز اضاف نکرده ام چون مغزم جواب کرده و نمیدونم که چند بایتی هست!!!! حالا واقعا متغیر long چند بایت اشغال میکنه؟؟
    سلام
    بسیار کار خوبی کردید. من فایل شما رو سریع یه نگاهی کردم. با C++ نوشتین و از شیئ گرایی استفاده کردید. خیلی خوبه که دارید با OOP کار میکنید. حتما ادامه بدید. البته به نظر هنوز با C++ و ویژگی هاش خوب آشنا نیستید. من از همین جا به همه دوستان توصیه میکنم C++ رو یاد بگیرید. خصوصا OOP. نکته ها:

    1- ما برای اینکه بدونیم متغییر هامون چند بیتی هستش معمولا سعی میکنیم که از typedefهای توی هدر فایل stdint.h استفاده کنیم. مثلا اینو ببین:


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مثلا اگه من یه متغییر نیاز دارم که از 0 تا 255 باشه میام از uint8_t استفاده میکنم. حالا اگه می خوای بدونی چرا این کار رو کردن برو بگرد. اگه پیدا نکردی بگو تا برات منبع بذارم.(در مورد اپراتور sizeof هم جستجو کن)
    2- هدفت از تابع init چیه؟ چرا بجاش برای کلاست یه کنستراکتر(constructor) ننوشتی؟
    3- تو کلاس دوبار یه اکسس مودیفایر(Access Modifier) رو تعریف کردی. این نوع کدنویسی برای یه بقیه کدنویس های حرفه ای قابل قبول نیست. درستش کن. حیفه!

    نقل قول نوشته اصلی توسط kamy007

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    #define _bool 1;
    #define _char 1;
    #define _int 2;
    #define _long 4;
    تو هدر فابلت نوشته 4 تا که درسته



    کاربر Kamy قبلا ازتون خواهش کردم در مورد چیزی که اطلاع ندارید نظری ندید(لااقل تو بخش من). ما گناه میکنیم که مودبانه به یک کسی موردی رو متذکر میشیم. حتما باید عصبی بشیم؟
    موارد بالا تعریفی از نویسند کد اصلی هستش که ممکنه الان این کامپایلر اون کامپایلر نباشه. برای C/C++ مقادیر متغییر ها با توجه به کامپایلر و حتی نوع پردازنده تغییر میکنه. الان ممکنه این پست شما استارتر تاپیک رو به دردسر بندازه. همینو می خواستی؟


  7. #7
    2007/04/20
    كره زمين
    1,408
    70

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    به نظر هنوز با C++ و ویژگی هاش خوب آشنا نیستید
    دقیقا درست گفتید!! حدود یک ماه هست زدم توی کار stm و c++ با کیل!!
    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    2- هدفت از تابع init چیه؟ چرا بجاش برای کلاست یه کنستراکتر(constructor) ننوشتی؟
    راستش بلد نبودم ولی الان نوشتم!!بسیار ممنون که توضیح دادید کلی از دغدغه های من حل شد!!\
    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تو کلاس دوبار یه اکسس مودیفایر(Access Modifier) رو تعریف کردی.
    درست می فرمایید !!public دوم در حقیقت باید private باشه ولی برای دیباگ جدا از پابلیک اصلی زیر private گذاشتم که بعد فقط خط public رو پاک کنم که private بشه!!
    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مثلا اگه من یه متغییر نیاز دارم که از 0 تا 255 باشه میام از uint8_t استفاده میکنم. حالا اگه می خوای بدونی چرا این کار رو کردن برو بگرد. اگه پیدا نکردی بگو تا برات منبع بذارم.(در مورد اپراتور sizeof هم جستجو کن)
    لطفا توضیح بدید چطوری میتونم کد را ساده تر کنم؟؟امید وارم روزی برد که این کتاب خونه رو همه استفاده کنند!!!
    ویرایش توسط mohsen.hex : 2017/09/20 در ساعت 22:25
  8. #8
    2012/12/30
    بوشهر
    3,204
    1,105

    پاسخ : کتابخانه عالی برای eeprom نوشتم !!

    نقل قول نوشته اصلی توسط mohsen.hex

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...لطفا توضیح بدید چطوری میتونم کد را ساده تر کنم؟؟امید وارم روزی برد که این کتاب خونه رو همه استفاده کنند!!!
    ببینید اول باید بدونید چطور یه کتابخونه بنویسید. کتابخونه استاندارد معمولا دو تا فایل داره. یه فایل C (برای شما CPP) و یه هدر فایل(با فرمت H یا HPP)
    ما توی فایل C یا CPP همیشه تعاریف رو انجام میدیم(Definition). تعریف تابع، کلاس، متغییر، ساختار و غیره. همه چیز.
    تو فایل H یا HPP هم فقط اعلامیه ها(Declaration) رو انجام میدیم.
    الان شما توی یه فایل هدر اومدید تعاریف رو انجام دادید. این استاندارد نیست. اینایی که نوشتین باید توی یه فایل cpp باشه و بعد یه فایل هم-نام این فایل cppتون بعنوان هدر hpp بسازید و توش اعلام کنید. برای نوشتن کتابخونه استاندارد این دو صفحه برای روشن کردن شما خیلی خوبه:


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    برای sizeof هم این دو خوبن:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    برای stdint.h هم این صفحه بد نیست:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    کتاب زبان C++ مگه ندارین؟ انتظار ندارم کسی که شروع میکنه به یادگیری C/C++ بعد از یادگیری بلد باشه چطور کتابخونه بنویسه چطور متاسفانه منبع درست و حسابی نوشته نشده براش. حتی انگلیسی. من خودم حتی با کدنویس های اروپایی و امریکایی هم که صحبت میکردم قبول داشتن این حرف رو ولی نوشتن کنستراکتر و ... رو دیگه باید بلد باشید.

نمایش نتایج: از 1 به 8 از 8

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

  1. بهترین نرم افزار برای نوشتم الگوریتم
    توسط سعید خیری در انجمن C , C++ , C#
    پاسخ: 0
    آخرين نوشته: 2016/12/06, 17:30
  2. جانشیش عالی برای کدویژن
    توسط soroush-fcb در انجمن میکروکنترلرهای AVR
    پاسخ: 25
    آخرين نوشته: 2013/10/27, 17:34
  3. پاسخ: 8
    آخرين نوشته: 2013/09/02, 08:42
  4. یک کرک عالی برای ALTIUM DXP VER:9.4
    توسط mahziyar در انجمن نرم افزار Protel
    پاسخ: 0
    آخرين نوشته: 2010/08/29, 20:57
  5. برنامه ای عالی برای طراحی فونت
    توسط رضا سپاس یار در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 1
    آخرين نوشته: 2007/03/21, 23:52

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

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

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

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

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