اطلاعیه

Collapse
No announcement yet.

راهنمایی ذخیره 500 عدد 10 رقمی

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

    راهنمایی ذخیره 500 عدد 10 رقمی

    با سلام ...

    من نیاز دارم 500 عدد 10 رقمی را ذخیره کنم ، به صورتی که پس از خاموش روشن شدن هم همچنان باقی باشند .
    همچنین توانایی جستجوی اعداد را هم نیاز دارم .

    به نظرتون از چه راهی باید استفاده کنم ؟
    هر عدد را در یک متغییر ذخیره کنم ؟ همچنین برای محل ذخیره کردن هم راهنمایی بفرمایید که در حافظه داخلی ذخیره کنم یا خارجی یا مموری کارت ؟ کدام راحت تر و ارزان تر است ؟ مدل Avr هم انتخابی هست .

    با تشکر
    نکته اخلاقی :
    همه چیز و همه کس را دوست داشته باش اما به هیچ چیز و هیچ کس دل مبند

    #2
    پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

    اول اینکه این اعداد ثابتن یا نه متغیرن و اگه متغیر هستن ترتیب خاصی دارن یا نه و یکم بیشتر در مورد کاری که میخوای انجام بدی توضیح بده تا بهتر راهنمایی کنم
    اگه ثابت هستن و تغییر نمیکنن میتونی از همی حافظه داده خود میکرو استفاده کنی با استفاده از جدول لوک پ پیداشون کنی
    اگر متغیر هستن از حافظه EEPROM استفاده کنی ذخیرشون کنی و ابتدای برنامت هم بخونیشون
    دوم اینکه 500 عدد ده رقمی میشه 5000 بایت یا حدود 5 کیلو بایت باید یا از میکرویی که این مقدار حافظه EEprom داره استفاده کنی یا از EEPROM های خارجی
    حالا نمیدونم میکرو AVR با همچین ظرفیت EEprom وجود داره یانه
    یا اینکه از کارتهای حافظه استفاده کنی

    دیدگاه


      #3
      پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

      اعداد متغییر هستند
      در واقع در طول کار هی باید در این اعداد جستجو بشه عدد مورد نظر پیدا بشه ، اصلاح بشه و یا پاک بشه ... و یا جدید اضافه بشه .
      برای استفاده از لوک پ مشتاقم اما ظاهرا اعداد 5 رقمی میشه گذاشت داخلش درسته ؟
      استفاده از مموری راحتتر هست یا حافظه خارجی ؟

      با تشکر
      نکته اخلاقی :
      همه چیز و همه کس را دوست داشته باش اما به هیچ چیز و هیچ کس دل مبند

      دیدگاه


        #4
        پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

        درود

        از eeprom میکرو میشه استفاده کرد. اگه منظورت از 10 رقم، 10 رقم ده دهی هست، که می تونی اون رو توی 4.5 بایت یا 5 بایت ذخیره کرد. یعنی حدود 2500 بایت فضا نیاز داری.
        اگه میکرویی با این ظرفیت وجود نداره، می تونی از حافظه خارجی مثل eeprom خارجی و همینطور flash خارجی استفاده کنی. هر دوی این قطعات با پروتکل صورت سریال وجود داره و معمولا 8 پایه هست و فضای کمی میگیره.

        برای flash تا چند مگ هم قطعه داریم.
        مـن هیچ ندانم که مرا آن که سرشت
        از اهل بهشت کرد یا دوزخ زشت
        جامی و بتی و بربطی بر لب کشت
        این هر سه مرا نقد و تو را نسیه بهشت

        دیدگاه


          #5
          پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

          اگه عدد ده دهی هم باشه حداکثر 9 بایت نیاز داره و باید حداکثر رو درنظر بگیری ممکنه عددت 9999999999 این بشه که 9بایت واسه ذخیره اش نیاز داری و کار با Eeprom راحتره ولی اگه بتونی کار با MMC که نمونه هاش تو نت زیاد هست رو یاد بگیری خیلی بهتره چون تموم اعداد رو میتونی داخل یه فایل متنی text و هرجایی از این فایل مثلا هر عددت رو توی یه خط ذخیره کنی

          دیدگاه


            #6
            پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

            نوشته اصلی توسط tofan_2050
            اگه عدد ده دهی هم باشه حداکثر 9 بایت نیاز داره و باید حداکثر رو درنظر بگیری ممکنه عددت 9999999999 این بشه که 9بایت واسه ذخیره اش نیاز داری و کار با Eeprom راحتره ولی اگه بتونی کار با MMC که نمونه هاش تو نت زیاد هست رو یاد بگیری خیلی بهتره چون تموم اعداد رو میتونی داخل یه فایل متنی text و هرجایی از این فایل مثلا هر عددت رو توی یه خط ذخیره کنی
            با سلام

            اگه از mcc استفاده کنی ودر حالت سکتوری میتونی روی یک رم 1 گیگی تقریبا بیشتر از 1 میلیون خط با طول 512 کاراکتر توش بریزی .
            mcc ها ساختارشون توی حالت کار سکتوری به این صورت هس که شما چندین مکان برای نوشتن داده دارین و حداکثر طولش هم 512 کاراکتره ...اگه خواستی من کتابخونشو واست میزارم ، خودم ازش استفاده کردم یکم تغییر کوچیک هم دادم...
            خیلی هم سخت نیس.
            ولی خودم علاقه دارم روی eeprom خارجی داده هارو بریزم . حتی اگه مجبور شم دوسه تا eeprom روی مدارببندم.شما میتونی یه eeprom با حجم دلخواهت بخری،واسه خودت جدول بندیش کنی ، مثلا بگی حداکثر خونه های مجاز واسه ریختن داده توی eeprom 16 بیت باشه(8 بیت اول رو به عنوان شناسه برای پیدا کردن اونچیزی که میخوای در نظر بگیر{همون id خودمون} 8 بیت بعدی رو هم به عنوان داده ها یا همون اعدادی که میخوای...). این جوری میتونی تابعی بنویسی واسه خودت که 16 بیت 16 بیت توی eeprom سرچ کنه و دادهات رو پیدا کنه....
            چون توی mcc هم همینجوریه . شما باید یک تابع جستجو بنویسی ، فرقی نداره از نظر نرم افزاری...

            دیدگاه


              #7
              پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

              نوشته اصلی توسط tofan_2050
              اگه عدد ده دهی هم باشه حداکثر 9 بایت نیاز داره و باید حداکثر رو درنظر بگیری ممکنه عددت 9999999999 این بشه که 9بایت واسه ذخیره اش نیاز داری و کار با Eeprom راحتره ولی اگه بتونی کار با MMC که نمونه هاش تو نت زیاد هست رو یاد بگیری خیلی بهتره چون تموم اعداد رو میتونی داخل یه فایل متنی text و هرجایی از این فایل مثلا هر عددت رو توی یه خط ذخیره کنی.

              نه مهندس، در واقع منم اشتباه گفتم. 4 بایت لازمه نه 4.5. همین 999999999 هگزش میشه 3B9AC9FF . لزومی نداره به صورت ده دهی در نظر بگیری و برای عددی بین 0 تا 9 یک بایت اختصاص بدی. با یه محاسبه ساده می تومی هگز کل عدد ده دهدی رو به چهار بایت تبدیل کنی.
              راحت تر اگه بخوای می تونی به 5 بایت تبدیل کنی، به این صورت که هر دو رقم (مثلا 99) رو توی یک بایت قرار بدی.
              مـن هیچ ندانم که مرا آن که سرشت
              از اهل بهشت کرد یا دوزخ زشت
              جامی و بتی و بربطی بر لب کشت
              این هر سه مرا نقد و تو را نسیه بهشت

              دیدگاه


                #8
                پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

                دوستان سلام
                من هم مشکلی مشابه دارم که دو سه روز منو درگیر کرده من اولین باری هست که دارم با 24C512 کار می کنم و قبلا فقط از حافظه eeprom خود میکرو استفاده می کردم حالا حافظه میکرو جواب کارم رو نمی ده ولی نتونستم هنوز از حافظه خارجی استفاده کنم
                راستش از نظر سخت افزاری اون رو بستم تو مدارم به پورت i2c از نظر نرم افزاری هم دو تا تابع زیر رو براش پیدا کردم و نوشتم اما تو آدرس دهی اون مشکل دارم نمی دونم اعداد یا کاراکترم رو چطور توی اون ذخیره کنم و بخونم ؟
                آخه تو میکرو خیلی راحت یه متغییر عددی از نوع eeprom تعریف می کردم دیگه کاری به هیچی نداشتم ولی اینجا وضع فرق کرده فکر کنم باید یه تبدیلاتی انجام بشه و بعد ذخیره با یه آدرس خاصی و بعد دوباره با آدرسی بخونم و به عدد یا کاراکتر تبدیلش کنم ولی نمی دونم چطوری ؟
                توی اینترنت خیلی سرچ کردم چیزی گیر نیومد . لطفا اگر کسی لینکی چیزی داره راهنماییی کنه ممنون میشم . oo:
                - به دنبال فرصت عمری تباه کردم ! فرصت جوانی ام بود من اشتباه کردم .

                دیدگاه


                  #9
                  پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

                  نوشته اصلی توسط کیوان قاسمی
                  با سلام

                  اگه از mcc استفاده کنی ودر حالت سکتوری میتونی روی یک رم 1 گیگی تقریبا بیشتر از 1 میلیون خط با طول 512 کاراکتر توش بریزی .
                  mcc ها ساختارشون توی حالت کار سکتوری به این صورت هس که شما چندین مکان برای نوشتن داده دارین و حداکثر طولش هم 512 کاراکتره ...اگه خواستی من کتابخونشو واست میزارم ، خودم ازش استفاده کردم یکم تغییر کوچیک هم دادم...
                  خیلی هم سخت نیس.
                  ولی خودم علاقه دارم روی eeprom خارجی داده هارو بریزم . حتی اگه مجبور شم دوسه تا eeprom روی مدارببندم.شما میتونی یه eeprom با حجم دلخواهت بخری،واسه خودت جدول بندیش کنی ، مثلا بگی حداکثر خونه های مجاز واسه ریختن داده توی eeprom 16 بیت باشه(8 بیت اول رو به عنوان شناسه برای پیدا کردن اونچیزی که میخوای در نظر بگیر{همون id خودمون} 8 بیت بعدی رو هم به عنوان داده ها یا همون اعدادی که میخوای...). این جوری میتونی تابعی بنویسی واسه خودت که 16 بیت 16 بیت توی eeprom سرچ کنه و دادهات رو پیدا کنه....
                  چون توی mcc هم همینجوریه . شما باید یک تابع جستجو بنویسی ، فرقی نداره از نظر نرم افزاری...
                  برای مموری کارت محدودیت نوع میکرو وجود داره ؟ یعنی مثلا میشه با مگا8 هم راهش انداخت ؟
                  بعدش اینکه من با بسکام میننویسم ... شما برا بسکام آموزشی سراغ ندارید ؟

                  با تشکر
                  نکته اخلاقی :
                  همه چیز و همه کس را دوست داشته باش اما به هیچ چیز و هیچ کس دل مبند

                  دیدگاه


                    #10
                    پاسخ : راهنمایی ذخیره 500 عدد 10 رقمی

                    نوشته اصلی توسط h_zaman06
                    برای مموری کارت محدودیت نوع میکرو وجود داره ؟ یعنی مثلا میشه با مگا8 هم راهش انداخت ؟
                    بعدش اینکه من با بسکام میننویسم ... شما برا بسکام آموزشی سراغ ندارید ؟

                    با تشکر
                    سلام
                    دوست عزیز شما با هر میکرویی میتونی MMC را راه اندازی کنید فقط باید میکرو مورد نظر ارتباط SPI را داشته باشد.که میکرو مگا 8 این ارتباط را دارا می باشد.
                    بسکام خودش توابع آماده برای ارتباط با پورت SPI رو داره.حتی توابع ارتباط با MMC رو هم داره.توی Help بسکام یک سرچی بزنی متوجه این قضیه میشید.
                    توی سایت هم مطالب خوبی می تونی پیدا کنید.چون این مبحث زیاد توی سایت بحث شده است.
                    موفق باشید

                    دیدگاه

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