اطلاعیه

Collapse
No announcement yet.

ds1307

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

    ds1307

    من یک برنامه در codevision برای ds1307 نوشتم و ورودی پایه vbat را از یک رگولاتور وصل کردم وقتی رگولاتور را بر می دارم درست کار می کنه ولی با رگولاتور کار نمی کن در ضمن در توابع codevision دستوری برای تنظیم روز هفته نیست کسی میتونه به من کمک کنه؟!
    i2c_init();
    rtc_init(0,0,0);
    lcd_init(16);
    i2c_start();
    rtc_set_time(0,0,0);
    rtc_set_date(21,05,05);
    i2c_stop();

    while (1)
    {
    i2c_start();
    rtc_get_time(&h,&m,&s);
    rtc_get_date(&d,&mn,&y);
    i2c_stop();
    sprintf(lcdb,"Time:%02u:%02u:%02u",h,m,s );
    sprintf(lcda,"Date:%02u:%02u:%02u",d,mn, y);
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_puts(lcda);
    lcd_gotoxy(0,1);
    lcd_puts(lcdb);
    delay_ms(500);


    };
    }

    #2
    پاسخ : ds1307

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

    دیدگاه


      #3
      پاسخ : ds1307

      باید برای پایه Vbatt از 3 ولت باطری استفاده بکنید.
      بله این ایسی برای تنظیم روز هفته دستور خاصی نداره. شما بایست با استفاده از یه تابع تبدیل تقویم رو بهش بدی و روز هفته رو بگیری.
      اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

      دیدگاه


        #4
        پاسخ : ds1307

        سلام

        ds1307 روز هفته رو هم داره

        رجیستر DAY در آدرس 03H یعنی بعداز Hour (ساعت) و قبل از Date (روز)

        کافیه مقدار دهیش کنید و بقیه ی کار رو خود ds1307 انجام میده. مقدار رجیستر از 1 تا 7 تغییر میکنه 1 به معنی شنبه و 7 به معنی جمعه

        البته این قراردادیه و کاری که ds میکنه اینه که با هر 24 ساعت رجیستر day رو یکی افزایش میده . مثلا میشه عدد 5 رو شنبه گرفت :biggrin:

        برای مشکل رگولاتور هم که گفتید

        نباید از تغذیه برای راه اندازی بک اپ استفاده کرد حتما از باطری بک اپ استفاده کنید

        در ضمن در مسیر بک اپ هیچ گونه قطعه ی دیگه ای مثلا دیود نذارید

        ِِDie for Life, Not Live to Die
        Freedom Fighter
        " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

        دیدگاه


          #5
          پاسخ : ds1307

          نوشته اصلی توسط chia
          سلام

          ds1307 روز هفته رو هم داره

          رجیستر DAY در آدرس 03H یعنی بعداز Hour (ساعت) و قبل از Date (روز)

          کافیه مقدار دهیش کنید و بقیه ی کار رو خود ds1307 انجام میده. مقدار رجیستر از 1 تا 7 تغییر میکنه 1 به معنی شنبه و 7 به معنی جمعه

          البته این قراردادیه و کاری که ds میکنه اینه که با هر 24 ساعت رجیستر day رو یکی افزایش میده . مثلا میشه عدد 5 رو شنبه گرفت :biggrin:

          برای مشکل رگولاتور هم که گفتید

          نباید از تغذیه برای راه اندازی بک اپ استفاده کرد حتما از باطری بک اپ استفاده کنید

          در ضمن در مسیر بک اپ هیچ گونه قطعه ی دیگه ای مثلا دیود نذارید
          خیلی خوبه. :agree:
          ولی یه سوال اگه تاریخ رو عوض کنیم بازهم مقداری که میده درسته.
          و اگه میشه دستور مربوط به ست کردن و خوندن اون توو کدویژن رو هم بگید.
          اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

          دیدگاه


            #6
            پاسخ : ds1307

            در مورد باطری از همه دوستان ممنون.آدرس رجیستر مربوط به روز هفته را می دونم و تابعی هم برای مقداردهی و خواندنش تعریف کردم ولی کاری انجام نمیده
            void write(unsigned char address,unsigned char data){
            i2c_start();
            i2c_write(address);
            i2c_write(data);
            i2c_stop();
            delay_ms(10);
            }
            unsigned char read(unsigned char address)
            {
            i2c_start();
            i2c_write(address);
            i2c_start();
            i2c_write(address|1);
            data=i2c_read(0);
            i2c_stop();
            return data;
            }

            دیدگاه


              #7
              پاسخ : ds1307

              نوشته اصلی توسط ourman

              خیلی خوبه. :agree:
              ولی یه سوال اگه تاریخ رو عوض کنیم بازهم مقداری که میده درسته.
              و اگه میشه دستور مربوط به ست کردن و خوندن اون توو کدویژن رو هم بگید.
              سلام

              بابت غیبت ببخشید :redface:

              راستش من با کد ویژن کار نمیکنم اما شما یتونید لایبرری رو دستکاری کنید و اون آدرس رو هم اضافه کنید و یه متغییر هم (مثلا weekday) بهش اختصاص بدید که بتونید این کار رو بکنید :smile:

              رجیسترها در 1307 به صورت مستقل از هم تغییر میکنن مثلا شما اگه ساعت رو تغییر بدید روز هیچ تغییری نمیکنه . رجیستر day هم به همین شکل به صورت مستقل تغییر میکنه شما باید در برنامه نویسی کاری بکنید که هر بار یوزر تاریخ رو تغییر داد روز هفته هم تنظیم بکنه
              ِِDie for Life, Not Live to Die
              Freedom Fighter
              " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

              دیدگاه


                #8
                پاسخ : ds1307

                حالا چه طوری این باطری بسته میشه به مدار :question:

                دیدگاه


                  #9
                  پاسخ : ds1307

                  نوشته اصلی توسط shivadanesh
                  حالا چه طوری این باطری بسته میشه به مدار :question:
                  میتونید از جاباطری هایی که مخصوص باطری بک اپ هستن استفاده کنید

                  یه نوع باطری هم هست که خودش دوتا سیم ازش بیرون اومده

                  اما بهتره از جاباطری استفاده کنید (از نوعی که رو برد نصب میشه)
                  ِِDie for Life, Not Live to Die
                  Freedom Fighter
                  " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                  دیدگاه


                    #10
                    پاسخ : ds1307

                    نه من یک باطری دارم که دو پایه + و- را داره در ضمن نیاز به شارژ هم داره می خوام ببینم به این دو تا پایه چی وصل کنم و چه طوری خروجی ازش بگیرم

                    دیدگاه


                      #11
                      پاسخ : ds1307

                      هر مدار اضافی در مسیر بک اپ ایجاد اختلال میکنه

                      شما بهتره از باطری لیتیومی 3 ولت مخصوص بک اپ استفاده کنید

                      1307 هنگام وجود تغذیه به صورت خودکار بک اپ رو قطع میکنه و با قطع تغذیه دوباره وصل میکنه

                      پایه ی بک اپ حدود 600 نانو آمپر جریان نیاز داره و با یه باطری بک اپ کوچک به مدت 10 سال زمان را نگه میدارد . پس نیازی به شارژ نداره
                      ِِDie for Life, Not Live to Die
                      Freedom Fighter
                      " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                      دیدگاه


                        #12
                        پاسخ : ds1307

                        من پایه + را به Vcc وپایه منفی را به زمین وصل کردم و از پایه +خروجی گرفتم و به آی سی زدم.البته این باطری نیکل کادمیوم هستش و نیاز به شارژ داره؟! :angry:

                        دیدگاه


                          #13
                          پاسخ : ds1307

                          من توی یک برنامه نیاز دارم که زمان و تاریخ را نشان بدم از ds1307 استفاده کردم و برای این با هر بار reset میکرو زمان از ابتدا محاسبه نشه دو تا برنامه نوشتم در اولی آی سی را زمان بندی کردم ودر دومی زمان را خواندم پایه vbat را هم به زمین وصل کردم ولی اگه برق مدار قطع بشه بعد از وصل شدن یک زمان وتاریخ اشتباه نشان میده و شمارش هم انجام نمی ده اشکال از ایه vbat هست یا این که دو تا برنامه نوشتم :sad:

                          دیدگاه


                            #14
                            پاسخ : ds1307

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

                            یه کم بیشتر تحمل کن ببین بازم اینجوریه؟

                            اگه بازم اینجوری بود دیگه حتما باید بک پ بذاری
                            ِِDie for Life, Not Live to Die
                            Freedom Fighter
                            " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                            دیدگاه

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