اطلاعیه

Collapse
No announcement yet.

قطع برق از میکرو وشروع از بقیه برنامه

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

    قطع برق از میکرو وشروع از بقیه برنامه

    با سلام وتشکر از دوستان

    من دارم روی یه برنامه تایمر کار میکنم
    چطور میتونیم با قطع برق میکرو بعداز وصل برق از بقیه برنامه ادامه بده

    #2
    پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

    این کار فقط یک راه داره البته فکر میکنم اونم کار با Bootloader هست.
    چون هر کاری بکنی اگه ولتاژ میکرو از یک حد مشخص پایین تر بره میکرو بطور اتوماتیک ریست میشه.
    البته اگر کارت رو توضیح بدی خیلی بهتر میشه کمکت کرد
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

    دیدگاه


      #3
      پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

      فکر میکنم بهترین راه استفاده از باطری Backup باشه اما اگر نه:
      ببخشید از اونجا که مدتیه با AVR کار نکردم بعضی جزئیات رو فراموش کردم، توی AVR دسترسی دوطرفه به Program Counter داشتیم؟ اگر بله پس راه دیگری که ممکن هست بتونید انجام بدید این هست که قبل از قطع برق محتویات Program Counter یا همون شمارنده برنامه رو بخوانید و در EEPROM قرار بدید، و در اول برنامه ( بردار ریست ) این مقدار رو دوباره توی شمارنده برنامه بریزید تا با وصل شدن برق و اجرای برنامه از آدرس صفر، پرش به جایی که بودید انجام بشه و برنامه از اونجا ادامه پیدا کنه ( که البته اگر اشتباه نکنم همچین دسترسی دوطرفه به شمارنده برنامه موجود نبود و این کار غیر ممکن هست )
      شاید این راه ممکن باشه:
      یک شمارنده برنامه مجازی درست کنید به طوری که مثلا بعد از اجرای هر سیکل، آدرسی شمارنده برنامه رو در یک جفت رجیستر ذخیره کنید و قبل از قطع برق اون مقدار رو در EEPROM ذخیره کنید، و در بردار ریست پرش به آدرسی که توسط اون جفت رجیستر مشخص میشه رو انجام بدید. ولی اینکار هم زیاد عاقلانه نیست چون نمونه برداری از شمارنده برنامه در هر سیکل باعث میشه که حجم برنامه حداقل دو برابر بشه، ضمن اینکه اگر زمان قطع برق رو ندونید مجبورید هر بار این مقدار رو در EEPROM بریزید و از اونجا که دفعات نوشتن در EEPROM هم محدود هست بعد از مدتی به مشکل بخورید. ایرادات دیگه هم داره ولی در موارد خیلی محدودی میشه از این راه ها استفاده کرد.
      به همین خاطر من پیشنهاد میکنم اگر بتونید حتما از باطری پشتیبان استفاده کنید و هر مانوری هم میخواید بدید روی همون بخش بدید.
      از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
      هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
      اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
      اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
      شاد و موفق باشید

      دیدگاه


        #4
        پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

        یه آی سی رم بگیر

        تمام متغیر ها مقادیر توی رم میکرو و آدرس خط درحال اجرا رو بگیر و با میکرو روی اون رم خارجی ذخیره کن! اینکارو هر خط که انجام میشه باید انجام بدی.

        اول برنامه یه پروسیجر بنویس که تمام متغییر هارو از رم خارجی بخونه و در جای مناسب رجیسترهای میکروت بزاره رم هم همینطور...

        بعد برنامه به آدرس خط در حال اجرا بپره!


        چرا گفتم رم؟ نگفتم EPPROM؟ چون امر این توع رم که توی میکروهه کمه ! و زود غیر قابل خوندن میشه 100000 تا 1000000 بار نوشتن

        رمتم با یه باطری فسقلی میتونی اطلاعاتشو حفط کنی

        ولی من توسیه میکنم یه باطری بکاپ برای میکروت بزاری و خلاص :icon_razz:

        دیدگاه


          #5
          پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

          در این پروژه یکسری موتور ورله بوسیله میکرو قطع ووصل میشن اگر وسط کار برق بره ومیکرو ریست بشه
          کارهائی که انجام گرفته نمیتونه از اول تکرار بشه باطری بکاپ برای میکرو هم نمیتونه چیزی رو حل کنه .
          ظاهرا آیسی حافظه خارجی تنها راهه

          دیدگاه


            #6
            پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

            باید برنامه رو طوری طراحی کنید که به محض قطع برق میکرو متوجه بشه و به کما ( sleep ) بره. یه باطری backup میتونه سری L رو تا 1 سال تو کما نگه داره ( به نظر خودم بیشتر ). بعد از وصل برق یه جوری باید از کما در بیاد.
            بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
            اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

            دیدگاه


              #7
              پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

              اول تغذیه میکرو را از یک باطری عبور دهید طوری که اگه برق رفت میکرو از باطری تغذیه بشه

              بعد باید کاری کنید که به محض اینکه برق بره ، یک اینتراپت خارجی مدار را به حالت wait ببره و وقتی که برق اومد ( مثلا بعد از یک دقیقه ) از wait خارج بشه . یک رله یا ترانزیستور می تونه int0 یا int1 شما را فعال کنه .

              موفق باشید

              دیدگاه


                #8
                پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                من این کار رو انجام دادم و با یه باطری بک پ مشکلم حل شد
                شما باید میکرو رو با باطری بک پ راه بندازید و برق 220 ولت رو به 5 ولت تبدیل کنی و به یکی از پایه ها بدی و مرتب چکش کنی اگه ورودی درست بود کارش رو انجام بده در غیر اینصورت صبر کنه تا اون ورودی 5 ولت بشه یا همون 1 منطقی خودمون
                من این کارو واسه راه انداختن موتوربرق یه کارخونه انجام داد و بدرستی جواب داد :mrgreen:
                دنبال کار میگردم تو تهران کسی سراغ داره

                دیدگاه


                  #9
                  پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                  با سلام خدمت دوستان من با استفاده از تایمر یک ساعت دارم تنها مشکلم فقط یک باطری backup هست واسه زمان قطع برق به نظر شما همچین مداری جواب میده _ این مدار تا وقتی vcc وصل باشه دیود قطع هست و باطری هیچ جریانی نمیده اما اگه برق قطع بشه و آند دیود 0.7 از کاتدش بیشتر بشه باطری مدار رو تغذیه میکنه میخواستم بدونم که آیا این مدار جواب میده اگه جواب میده واسه زمانی که برق وصل باشه چطوری میتونم باطری رو شارژ کنم آخه باطری که میخوام بخرم قابل شارژ هست.در ضمن ببخشید اگه شکل مدار حرفه ای نیست آخه با paint کشیدم :biggrin: :biggrin: :biggrin: :biggrin:

                  مرسی
                  ندانستن عیب نیست نپرسیدن عیب است.

                  دیدگاه


                    #10
                    پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                    سلام
                    جواب میده.
                    ولی در مورد شارژ باید خیلی چیزها رو در نظر بگیری تا عمر باطریت کم نشه. راحت ترین سیستم شارژ اینه که تو همین مدار خودت یه مقاومت مثلا 100 اهم با دیود موازی کنید.
                    بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                    اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                    دیدگاه


                      #11
                      پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                      سلام
                      درسته جواب میده فقط باید به دونکته توجه کنی:
                      اول اینکه سعی کن به جای دیود معمولی از شاتکی با افت ولتاژ کم مثلا bat85 استفاده کن تا باطریت دیرتر خالی کنه و زمان بیشتری دووم بیاره.البته mosfet خیلی بهتره.
                      دوما برای شارژ باطریهات حتما باید نوع باطری رو درست انتخاب کنی.
                      امام حسين(عليه السلام) فرمودند: کسي که از تو انتقاد ميکند تو را دوست دارد و کسي که با تو دشمني دارد، از تو تعريف و تمجيد ميکند.
                      از پاسخ به سوالات انجمن به صورت خصوصی معذورم.

                      دیدگاه


                        #12
                        پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                        نوشته اصلی توسط mostafahk
                        سلام
                        جواب میده.
                        ولی در مورد شارژ باید خیلی چیزها رو در نظر بگیری تا عمر باطریت کم نشه. راحت ترین سیستم شارژ اینه که تو همین مدار خودت یه مقاومت مثلا 100 اهم با دیود موازی کنید.
                        سلام _ینی اگه فقط یک مقاومت 100 اهم موازی با دیود بزارم وقتی برق هست باطری شارژ میشه؟؟؟
                        ندانستن عیب نیست نپرسیدن عیب است.

                        دیدگاه


                          #13
                          پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                          نوشته اصلی توسط student2011
                          سلام
                          درسته جواب میده فقط باید به دونکته توجه کنی:
                          اول اینکه سعی کن به جای دیود معمولی از شاتکی با افت ولتاژ کم مثلا bat85 استفاده کن تا باطریت دیرتر خالی کنه و زمان بیشتری دووم بیاره.البته mosfet خیلی بهتره.
                          دوما برای شارژ باطریهات حتما باید نوع باطری رو درست انتخاب کنی.
                          سلام _ شما چه مارکی واسه باطری پیشنهاد میکنید؟
                          ندانستن عیب نیست نپرسیدن عیب است.

                          دیدگاه


                            #14
                            پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                            سلام
                            مارک نه، نوع.به این سوالا جواب بده تا بهت بگم:
                            1.میزان توان مصرفی مدارت در ساعت چقدره؟
                            2.چند ساعت قراره با باطری کار کنه؟
                            3.در مدار غیر از 5 ولت ولتاژ دیگری هم میخای مثلا برا رله یا نه؟
                            4.چقدر فضا برای باطری داری؟
                            5.چقدر میخای هزینه کنی؟
                            6.شارژر ساده باشه یا پیچیده؟
                            امام حسين(عليه السلام) فرمودند: کسي که از تو انتقاد ميکند تو را دوست دارد و کسي که با تو دشمني دارد، از تو تعريف و تمجيد ميکند.
                            از پاسخ به سوالات انجمن به صورت خصوصی معذورم.

                            دیدگاه


                              #15
                              پاسخ : قطع برق از میکرو وشروع از بقیه برنامه

                              نوشته اصلی توسط student2011
                              سلام
                              مارک نه، نوع.به این سوالا جواب بده تا بهت بگم:
                              1.میزان توان مصرفی مدارت در ساعت چقدره؟
                              2.چند ساعت قراره با باطری کار کنه؟
                              3.در مدار غیر از 5 ولت ولتاژ دیگری هم میخای مثلا برا رله یا نه؟
                              4.چقدر فضا برای باطری داری؟
                              5.چقدر میخای هزینه کنی؟
                              6.شارژر ساده باشه یا پیچیده؟
                              سلام_ببخشید_منظورم نوع بود
                              1-نمیدونم توانش چقدره فقط یک میکرویه که یک ساعتو رو ال سی دی کاراکتری نمایش میده و از یک پایه میکرو زذم به ترانزیستور واسه برق رله _ رله هم 5ولت هستش _ در واقع یک مدار آلارم هست که در زمان مشخص رله رو فعال میکنه_ باید در زمان قطع برق ساعتش عقب نیفته
                              2- زیاد لازم نیست فقط زمان قطع برق در حد چند ساعت ، ساعت مدار عقب نیفته
                              3_آره یک رله 5 ولت 3 آمپر هم دارم
                              4_من الان مدارشو پشت فیبرشو در آوردم و داخل قاب گذاشتم شاید در حدود یک باطری کتابی جا داشته باشه
                              5_هرچی کمتر بهتر :biggrin:_از 10 تومن بیشتر نشه
                              6_شارژر خیلی ساده باشه_جوری که در حد یکی 2 تا مقاومت باشه که بتونم رو فیبر جاش کنم آخه من پشت بردو در آوردم و الان بردش آمادست فقط باطریش مونده
                              مرسی
                              ندانستن عیب نیست نپرسیدن عیب است.

                              دیدگاه

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