اطلاعیه

Collapse
No announcement yet.

مشکل در DS1307

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

    #16
    پاسخ : مشکل در DS1307

    پس در اینصورت حتما باید باتری بکاپ وصل باشه درسته ؟
    حالا مثلا ما برای خوندن اطلاعات از این آی سی دستورات رو از میکرو بهش فرستادیم
    و میکرو رو خاموش کردیم پس در اینجا باید ایسی مشغول به کار باشه
    حالا دفعه بعد که خواستیم دوباره اطلاعات رو از ایسی بخونیم حتما باید این دستورات خوندن
    اطلاعات رو بهش بفرستیم
    حالا در این مرحله دیگه نیازی نیست بیت ch رو تنظیم کنیم ؟
    من دقیقا اینجا مشکل دارم
    چون من برای کارکردن اسیلاتور این بیت رو 0 میکنم بعد درست کار میکنه ولی بعدش که تغذیه میکرو
    ( و نه ds1307) رو قطع و مجددا وصل میکنم دوباره اسیلاتور خاموش میشه و دوباره هم باید این بیت
    برنامه ریزی شه !
    البته باتری بکاپ بهش وصل نمیکنما !
    دلیلش اینه یا چیز دیگه میتونه باشه ؟؟؟؟



    مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...

    دیدگاه


      #17
      پاسخ : مشکل در DS1307

      نوشته اصلی توسط ahmad.e.c.m
      پس در اینصورت حتما باید باتری بکاپ وصل باشه درسته ؟
      حالا مثلا ما برای خوندن اطلاعات از این آی سی دستورات رو از میکرو بهش فرستادیم
      و میکرو رو خاموش کردیم پس در اینجا باید ایسی مشغول به کار باشه
      حالا دفعه بعد که خواستیم دوباره اطلاعات رو از ایسی بخونیم حتما باید این دستورات خوندن
      اطلاعات رو بهش بفرستیم
      حالا در این مرحله دیگه نیازی نیست بیت ch رو تنظیم کنیم ؟
      نه دیگه فقط بعد از وصل تغذیه این بیت باید 0 بشه بعدش دیگه باید مثل بچه آدم کار کنه تا وقتی که ای سی برقش قطع بشه . اگر هم باطری بکاپ داشته باشه هیچ اتفاقی براش نمی افته. پین باطری رو به زمین وصل کن ببین چی میشه جوابشم بده



      دیدگاه


        #18
        پاسخ : مشکل در DS1307

        من این نتیجه ها رو بدون اتصال باتری بکاپ و اتصال پایه 3 به زمین گرفتم
        البته پای 3 رو مستقیم به زمین دیگه وصل نمیکنم چون وصل کردم مشکلی نبود
        ولی وقتی تغذیه رو قطع و مجددا وصل میکنم جریال زیادی از آیسی میگذره !
        خیلی تعجب کردم !
        حالا دیگه این پایه رو با یه مقاومت مثلا 2.2 کیلو زمین میکنم
        مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...

        دیدگاه


          #19
          پاسخ : مشکل در DS1307

          با باتری بکاپ هم تست کردم ولی هر بار که تغذیه میکرو رو قطع میکنم
          اسیلاتور ds1307 هم خاموش و در نتیجه منم برای فعالسازی مجدد اون باید ch
          رو 0 کنم که باز هم مقدار ثانیه صفر و تنظیم ساعت بهم میخوره !
          دوست عزیز شما تونستید درست ازش نتیجه بگیرید ؟
          مشکلات من رو ندارید ؟
          مهم نیست که چه مدرکی دارید ، مهم این است که چه درکی دارید ...

          دیدگاه


            #20
            پاسخ : مشکل در DS1307

            نوشته اصلی توسط ahmad.e.c.m
            با باتری بکاپ هم تست کردم ولی هر بار که تغذیه میکرو رو قطع میکنم
            اسیلاتور ds1307 هم خاموش و در نتیجه منم برای فعالسازی مجدد اون باید ch
            رو 0 کنم که باز هم مقدار ثانیه صفر و تنظیم ساعت بهم میخوره !
            دوست عزیز شما تونستید درست ازش نتیجه بگیرید ؟
            مشکلات من رو ندارید ؟
            سلام
            منم دقیقا همین مشکل رو دارم
            با اینکه باتری وصله ولی بازم نیاز داره آی سی راه اندازی بشه
            نمیدونم مشکل از کجاست

            دیدگاه


              #21
              پاسخ : مشکل در DS1307

              دوستانی که با این آیسی و صفر شدنش بعد از قطع و وصل تغذیه مشکل دارند ...


              اگه هنوز مشکلتون برطرف نشده ، اعلام کنید تا بگم مشکل از کجاست و چجوری برطرف میشه .

              البته اینو بگم که من با بیسکام کار میکنم ( فعلاً ... )
              بر زنده باد گفتن این مردم خوش گریز

              دل بر مَنه که یک تنه در سنگرت کنند ...

              دیدگاه


                #22
                پاسخ : مشکل در DS1307

                نوشته اصلی توسط Pixar
                دوستانی که با این آیسی و صفر شدنش بعد از قطع و وصل تغذیه مشکل دارند ...


                اگه هنوز مشکلتون برطرف نشده ، اعلام کنید تا بگم مشکل از کجاست و چجوری برطرف میشه .

                البته اینو بگم که من با بیسکام کار میکنم ( فعلاً ... )
                سلام
                من با کدویژن کار می کنم ولی شما بگو شاید مشکل ما حل شد

                دیدگاه


                  #23
                  پاسخ : مشکل در DS1307

                  نوشته اصلی توسط sadeghjun
                  سلام
                  من با کدویژن کار می کنم ولی شما بگو شاید مشکل ما حل شد
                  سلام :

                  حل این موضوع اصلاًآ‌ چیز خاص و پیچیده ای نیست و بسیار هم ساده ست ...

                  پس چون ممکنه بعضی کدویژن و برخی هم بیسکام کار کرده باشند ، برنامه ای نمیذارم و فقط توضیح روال کارو میدم .

                  اکثر دوستانی که با این مشکل مواجه شدند ، به این 2 نکته در برنامه شون دقت نمیکنند !

                  1 - شما در برنامه ای که مینویسید ، نباید قبل از شروع حلقهء اصلی برنامه ، مقداری در آدرس 00h (بعبارتی همون آدرس ثانیه ) آیسی بنویسید و فقط مجاز به یکبار خوندن از هر آدرس دلخواه هستید . حتی اگه برای بار اول قراره مدارو روشن کنید ...


                  2 - زیربرنامهء نوشتن در آیسی ، فقط و فقط باید در خلال فشرده شدن دکمه های تنظیم ساعت ـ دقیقه - ثانیه - روز - ماه و یا سال اتفاق بیفته و با پایان تنظیمات و بازگشت به حلقهء اصلی ، دیگه اگر هیچ کلیدی فشرده نشده باشه ، به هیچ وجه نباید بخصوص در آدرس 00h آیسی چیزی نوشته بشه ...


                  اگر این نکته رو رعایت کنید ، این اتفاق میفته :

                  فرض کنید که باطری بکاپ هم گذاشتید ....

                  وقتی مدار روشن میشه ، طبیعتاً هنوز هیچ مقداری در آیسی نوشته نشده و اسیلاتورش هم خاموش هست و ممکنه اعداد 00:00:80 و یا 165:165:165 نمایش داده بشه ... هیچ اشکالی نداره !

                  حالا کافیه فقط یکبار دکمهء ثانیه رو فشار بدید ... آیسی برای همیشه ( منظور تا وقتی که باتری بکاپ داره ) شروع بکار خواهد کرد و حتی اگه مدارو خاموش هم کنید ، با روشن شدن مجدد ، چون قبل از شروع حلقهء اصلی ، شما چیزی در اون ننوشته اید و فقط ازش یکبار میخونید ، هیچ تغییری در مقادیر فعلی آیسی اتفاق نخواهد افتاد و زمان یا تاریخ فعلی رو به شما نشان خواهد داد ...

                  دوستانی که اصرار دارند قبل از شروع حلقهء اصلی ( یعنی بعد از وصل تغذیه ) ،آ‌ اسیلاتور آیسی رو روشن کنند ( یعنی بیت CH رو 0 کنند ) با این مشکل مواجه خواهند شد . حدس بزنید چرا ...؟

                  چون امکان انجام عملیات بیتی روی خانه های حافظهء DS1307 بصورت مستقیم وجود نداره . پس دوستان ناچاراً میان و در آدرس 00H عدد صفر مینویسند . غافل از اینکه با اینکار ، کل ثانیه رو هم تبدیل به 00 میکنند و با هر بار قطع و وصل تغذیه، آیسی مقادیر شمرده شده رو از دست میده !

                  البته امکان انجام عملیات بیتی بصورت غیر مستقیم وجود داره که لزومی به توضیحش نمیبینم و همین 2 نکتهء اصلی رو که بکار ببندید ،آ‌ نتیجهءآ‌ دلخواه خواهید گرفت ...


                  به همین سادگی ... :nerd:
                  بر زنده باد گفتن این مردم خوش گریز

                  دل بر مَنه که یک تنه در سنگرت کنند ...

                  دیدگاه


                    #24
                    پاسخ : مشکل در DS1307

                    من موافق نیستم با این روال . چون قبلا هم قبل از لوپ اصلی و الان هم کار کردم با ای سی هیچیش نمیشه! حتی میشه قبل از لوپ اصلی مقدار آدرس 00 رو خوند و بعد بیت CH رو پاک کرد و دوباره مقدار رو نوشت سرجاش هیچ مشکلی پیش نمیاد. شاید یه چند نانو ثانیه زمان عقب بیفته که خیلی مسئله مهمی نیست من از هم دو روش استفاده کردم .

                    دیدگاه


                      #25
                      پاسخ : مشکل در DS1307

                      نوشته اصلی توسط arvinfx
                      من موافق نیستم با این روال . چون قبلا هم قبل از لوپ اصلی و الان هم کار کردم با ای سی هیچیش نمیشه! حتی میشه قبل از لوپ اصلی مقدار آدرس 00 رو خوند و بعد بیت CH رو پاک کرد و دوباره مقدار رو نوشت سرجاش هیچ مشکلی پیش نمیاد. شاید یه چند نانو ثانیه زمان عقب بیفته که خیلی مسئله مهمی نیست من از هم دو روش استفاده کردم .
                      چه شما موافق باشید و چه نباشید ، این روال کار هست ...

                      آخه اگر شما باتری بکاپ بذارید , دیگه چه لزومی داره که قبل از حلقهء اصلی ، کار بیهوده و کدنویسی اضافه انجام بدید و بیت CH رو پاک کنید !؟ .... خُب چه کاریه دوست عزیز !؟ oo: oo: oo:


                      اصلاً من یه سوال از شما می پرسم :

                      آیا استفاده از DS1307 بدون باتری بکاپ عاقلانه و با معنیه و آیا جایی دیدید که اینجوری ازش استفاده کرده باشند !!!؟


                      به همهء دوستان عرض میکنم که اگه دنبال دردسر و اعصاب خوردی هستید ، میتونید به توصیهء بنده عمل نکنید !
                      بر زنده باد گفتن این مردم خوش گریز

                      دل بر مَنه که یک تنه در سنگرت کنند ...

                      دیدگاه


                        #26
                        پاسخ : مشکل در DS1307

                        سلام
                        من قبلا این کارایی که Pixar عزیز گفته رو انجام داده بودم ولی با وجود باتری باز چیزی که از ds1307خونده میشد 00:00:00 است.

                        دیدگاه


                          #27
                          پاسخ : مشکل در DS1307

                          نوشته اصلی توسط sadeghjun
                          سلام
                          من قبلا این کارایی که Pixar عزیز گفته رو انجام داده بودم ولی با وجود باتری باز چیزی که از ds1307خونده میشد 00:00:00 است.
                          اگه همینجوری که گفتم عمل کرده باشید ، قطعاًآ‌ اشکال کار شما جای دیگه ست .

                          من مطلب خاصی نگفتم ... هر چه عنوان شد ،آ‌ جزء بدیهیات بود !


                          اگه خواستی برنامه تو بذار تا ببینم ...
                          بر زنده باد گفتن این مردم خوش گریز

                          دل بر مَنه که یک تنه در سنگرت کنند ...

                          دیدگاه


                            #28
                            پاسخ : مشکل در DS1307

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

                            آخه اگر شما باتری بکاپ بذارید , دیگه چه لزومی داره که قبل از حلقهء اصلی ، کار بیهوده و کدنویسی اضافه انجام بدید و بیت CH رو پاک کنید !؟ .... خُب چه کاریه دوست عزیز !؟ oo: oo: oo:
                            باطری بکاپ مگه بیت CH رو پاک میکنه؟ که ربطی به کل این ماجرای کلاک نزدن داشته باشه؟


                            اصلاً من یه سوال از شما می پرسم :

                            آیا استفاده از DS1307 بدون باتری بکاپ عاقلانه و با معنیه و آیا جایی دیدید که اینجوری ازش استفاده کرده باشند !!!؟
                            نه ندیدم ولی باطری بکاپ فقط میتونه مقدار بیت CH رو [glow=red,2,300]بعد از مقدار دهی[/glow] توست برنامه همونی که هست نگه داره

                            ولی بعد از اینکه پست رو زدم داشتم فکر و تخیل میکردم به این نتیجه رسیدم که وقتی کد پاک کردن بیت CH رو اول برنامه مینویسیم یه اشکالی ممکنه پیش بیاد و اونم اینه که وقتی برق مدار وصل میشه ممکنه ای سی میکرو زودتر از ای سی ساعت شروع به کار بکنه و همین موضوع باعث بشه دستورات میکرو رو نتونه بگیره. شاید بشه با یه وقفه چند میلی ثانیه ای بعد از وصل برق مشکل رو حل کرد .

                            صادق اگر میشه یه کاری بکن یه برنامه بنویس بهش هر 5 ثانیه بیت CH رو 0 کنه و ساعت رو بخونه و نشون بده نتیجشو بهم بده

                            دیدگاه


                              #29
                              پاسخ : مشکل در DS1307

                              نوشته اصلی توسط arvinfx
                              از کجا این روال رو پیدا کردید مرجع خاصی براش هست؟ :rolleyes:
                              مرجعش ، [glow=red,2,300]عقل[/glow] هست دوست عزیز ... از جای خاصی پیدا نکردم !

                              باطری بکاپ مگه بیت CH رو پاک میکنه؟ که ربطی به کل این ماجرای کلاک نزدن داشته باشه؟
                              معلومه که خیر ... !

                              ببین دوست من ... بیت [glow=red,2,300]CH[/glow] با بقیهء بیتهای این آیسی هیچ تفاوت ذاتی که نداره ! اگه تغذیه و باتری قطع بشن ، خوب اونهم به حالت پیش فرض ( یعنی غیر فعال ) برمیگرده . درست مثل بقیهء خانه های حافظه اش !

                              اصلاًآ‌ باتری برای این هست که اطلاعاتی پاک نشه ...

                              من گمان میکنم ، برداشت شما از نحوهء کارکرد [glow=red,2,300]DS1307[/glow] اندکی نادرست هست ...

                              شما تصور میکنید هر بار که تغذیه قطع و وصل بشه ،آ‌ میبایست حتماً دوباره بیت [glow=red,2,300]CH[/glow] رو صفر کنید که این کاملاًآ‌ اشتباهه ...!

                              بیت [glow=red,2,300]CH[/glow] کافیه فقط یکبار صفر بشه ،آ‌ دیگه تا موقع وصل بودن باتری بکاپ ( حتی با قطع تغذیه ) 1 نخواهد شد ... مگر اینکه یا باتری هم قطع بشه و یا خود شما بصورت نرم افزاری اونو غیر فعال کنید .

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

                              صادق اگر میشه یه کاری بکن یه برنامه بنویس بهش هر 5 ثانیه بیت CH رو 0 کنه و ساعت رو بخونه و نشون بده نتیجشو بهم بده
                              چرا چنین برنامه ای میخوای ؟ میخوای بدونی چجوری عملیات بیتی باید انجام داد ... ؟

                              این فیلمو که از نتیجهء همین روال خودم گرفتم اگه دوست داشتی ببین ... ( البته حجمش 16M هست ! )

                              شاید قانع بشی با دیدنش

                              اگه به برنامه اش هم شک داری ، بگو تا برنامهء همین ساعتو که تو فیلم هست برات بذارم ...

                              http://wle.ir/up/do.php?filename=139765597517632.rar
                              بر زنده باد گفتن این مردم خوش گریز

                              دل بر مَنه که یک تنه در سنگرت کنند ...

                              دیدگاه


                                #30
                                پاسخ : مشکل در DS1307

                                نوشته اصلی توسط وحیـد
                                مرجعش ، [glow=red,2,300]عقل[/glow] هست دوست عزیز ... از جای خاصی پیدا نکردم !

                                معلومه که خیر ... !

                                ببین دوست من ... بیت [glow=red,2,300]CH[/glow] با بقیهء بیتهای این آیسی هیچ تفاوت ذاتی که نداره ! اگه تغذیه و باتری قطع بشن ، خوب اونهم به حالت پیش فرض ( یعنی غیر فعال ) برمیگرده . درست مثل بقیهء خانه های حافظه اش !

                                اصلاًآ‌ باتری برای این هست که اطلاعاتی پاک نشه ...

                                من گمان میکنم ، برداشت شما از نحوهء کارکرد [glow=red,2,300]DS1307[/glow] اندکی نادرست هست ...

                                شما تصور میکنید هر بار که تغذیه قطع و وصل بشه ،آ‌ میبایست حتماً دوباره بیت [glow=red,2,300]CH[/glow] رو صفر کنید که این کاملاًآ‌ اشتباهه ...!

                                بیت [glow=red,2,300]CH[/glow] کافیه فقط یکبار صفر بشه ،آ‌ دیگه تا موقع وصل بودن باتری بکاپ ( حتی با قطع تغذیه ) 1 نخواهد شد ... مگر اینکه یا باتری هم قطع بشه و یا خود شما بصورت نرم افزاری اونو غیر فعال کنید .

                                بله ... ممکنه این اتفاق بیفته . اما اگه تغذیه مدار قطع نشه و فقط میکرو ریست بشه ، چنین اتفاقی نخواهد افتاد .

                                چرا چنین برنامه ای میخوای ؟ میخوای بدونی چجوری عملیات بیتی باید انجام داد ... ؟

                                این فیلمو که از نتیجهء همین روال خودم گرفتم اگه دوست داشتی ببین ... ( البته حجمش 16M هست ! )

                                شاید قانع بشی با دیدنش

                                اگه به برنامه اش هم شک داری ، بگو تا برنامهء همین ساعتو که تو فیلم هست برات بذارم ...

                                http://wle.ir/up/do.php?filename=139765597517632.rar
                                سلام
                                دوست عزیز خوب یه بار یه پروژه درست و حسابی از این ساعت بذار هم خیال ما رو راحت کن و هم خیال خودتو. من با بسکام کار میکنم، اما همیشه با قطع و وصل مدار اصلی زمانم میشه 0:0:80 گرفتار شدم از دستش...
                                دستم به دامنت، یه برنامه جمع و جور و درست حسابی از ds1307 بذار ما هم دعا میکنیم به جونت.
                                مرسی
                                تشکر نکن، صلوات بفرست:

                                [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

                                دیدگاه

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