اطلاعیه

Collapse
No announcement yet.

مشکل با بهم ریختن زمان در ds1307

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

    #31
    پاسخ : مشکل با بهم ریختن زمان در ds1307

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

    دیدگاه


      #32
      پاسخ : مشکل با بهم ریختن زمان در ds1307

      نوشته اصلی توسط حمید نجفی
      من فکر می کنم اگه یه تاپیک بزنیم و شماره تلفن تمام فروشنده های جمهوری رو با توضیح کوچکی ازشون بزاریم عالی میشه
      عالیه!
      انجام پروژه های برنامه نویسی اندروید
      [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
      http://cafebazaar.ir/app/?id=com.atxdroid

      دیدگاه


        #33
        پاسخ : مشکل با بهم ریختن زمان در ds1307

        سلام دوستان
        یه تجربه دارم در مورد استفاده از اینتراپت در ds
        دیدید که معمولا این آی سی عقب می افته یا قات میزنه .
        اگر دارید از اینتراپت جهت استفاده از خروجی 1ثانیه ای استفاده میکنید باید دقت کنید که اگر ساعت خراب بشه چون خروجی 1ثانیه ای قابل برنامه ریزی هست ، به صورت دائم و با سرعت زیادی به میکروی شما اینتراپت میده و سیستمتون هنگ میکنه .
        واسه همین در ابتدا اینتراپت رو غیر فعال کنید و مقدار رو بخونید و اگر درست بود اینتراپت فعال و الی آخر. . .
        سخت است حرفت را نفهمند،

        سخت تر این است که حرفت را اشتباهی بفهمند

        دیدگاه


          #34
          پاسخ : مشکل با بهم ریختن زمان در ds1307

          سلام بچا
          من بعد از کلی تحقیق این ور اون ور متوجه شدم که شرکت شیوا امواج از ds1340 استفاده کرده و دیتا شیتش رو گرفتم و ...
          خوب حالا کسی تفاوت ds1307 و ds1340 رو میدونه؟
          انجام پروژه های برنامه نویسی اندروید
          [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


            #35
            پاسخ : مشکل با بهم ریختن زمان در ds1307

            سلام

            من این برنامه رو نوشتم ولی عقب میفته خیلی زیاد.تو یه دقیقه ، 10 ثانیه عقب میفته
            --------------------------------------------------------------------------------------------------------------
            من این کد رو توی پروتئوس تست کردم و توی پروتئوس به نظر میاد که ساعت عقب میفته ولی در عمل این طوری نبود .امان از این پروتئوس

            #include <mega8.h>
            #include <delay.h>
            #include <i2c.h>
            #include <ds1307.h>
            unsigned char n=0,m=0,s=0;
            unsigned char num[]={0x3F,0x06,0x5b,0x4F,0x66,0x6d,0x7d,0x07,0x7F,0x6 F};
            unsigned char a=0,b=0,c=0,d=0;
            void main(void)
            {
            PORTB=0x00;
            DDRB=0xFF;
            PORTC=0x00;
            DDRC=0x00;
            PORTD=0x0F;
            DDRD=0x1F;
            TCCR0=0x00;
            TCNT0=0x00;
            TCCR1A=0x00;
            TCCR1B=0x00;
            TCNT1H=0x00;
            TCNT1L=0x00;
            ICR1H=0x00;
            ICR1L=0x00;
            OCR1AH=0x00;
            OCR1AL=0x00;
            OCR1BH=0x00;
            OCR1BL=0x00;
            ASSR=0x00;
            TCCR2=0x00;
            TCNT2=0x00;
            OCR2=0x00;
            MCUCR=0x00;
            TIMSK=0x00;
            UCSRB=0x00;
            ACSR=0x80;
            SFIOR=0x00;
            ADCSRA=0x00;
            SPCR=0x00;
            TWCR=0x00;
            i2c_init();
            rtc_init(0,1,0);
            while (1)
            {
            rtc_get_time(&n,&m,&s);
            a=m%10;
            b=m/10;
            c=n%10;
            d=n/10;
            PORTD=0xFE;
            PORTB=num[a];
            delay_ms(7);
            PORTD=0xFD;
            PORTB=num[b];
            delay_ms(7);
            PORTD=0xFB;
            PORTB=num[c];
            delay_ms(7);
            PORTD=0xF7;
            PORTB=num[d];
            delay_ms(7);
            PORTD=0xFF;
            delay_ms(7);
            }
            }
            فایل HEX
            http://s5.picofile.com/file/81033046...time8.hex.html

            فایل پروتئوس
            http://s5.picofile.com/file/81033048...time8.dsn.html

            دیدگاه


              #36
              پاسخ : مشکل با بهم ریختن زمان در ds1307

              دوستان سلام
              من یه ماژول ds1307 از eca خریدم. از اینا
              http://eshop.eca.ir/ماژول-های-کاربردی/2204-ماژول-ساعت-ds1307-به-همراه-باتری-real-time-clock-chip.html
              یه باتری 3 ولت سکه ای هم بهش وصل کردم
              با مگا 8 هم برنامه دادم، پایه های scl - sda - vcc - gnd رو فقط وصل کردم. اما متاسفانه وقتی روشن میشه ساعت و دقیقه صفره و ثانیه 80! وقتی تنظیمش میکنم شروع به کار میکنه و مشکلی نداره، اما وقتی از مدار جدا میکنمش و دوباره میزنمش همش میشه مثل قبل و اطلاعاتش پاک میشه. ممکنه کسی راهنماییم کنه؟ مگه نباید با باتریش کار کنه؟؟!
              ضمنا، خروجی های bat - sq - ds برای چی هستن؟
              کسی از این ماژول برنامه شسته رفته ای داره؟ با بسکام منظورمه.
              ممنون از راهنماییتون
              تشکر نکن، صلوات بفرست:

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

              دیدگاه


                #37
                پاسخ : مشکل با بهم ریختن زمان در ds1307

                نوشته اصلی توسط nematollahian
                دوستان سلام
                من یه ماژول ds1307 از eca خریدم. از اینا
                http://eshop.eca.ir/ماژول-های-کاربردی/2204-ماژول-ساعت-ds1307-به-همراه-باتری-real-time-clock-chip.html
                یه باتری 3 ولت سکه ای هم بهش وصل کردم
                با مگا 8 هم برنامه دادم، پایه های scl - sda - vcc - gnd رو فقط وصل کردم. اما متاسفانه وقتی روشن میشه ساعت و دقیقه صفره و ثانیه 80! وقتی تنظیمش میکنم شروع به کار میکنه و مشکلی نداره، اما وقتی از مدار جدا میکنمش و دوباره میزنمش همش میشه مثل قبل و اطلاعاتش پاک میشه. ممکنه کسی راهنماییم کنه؟ مگه نباید با باتریش کار کنه؟؟!
                سلام
                من اولین بار که با DS1307 کار میکردم مشکلم این بود که اصلاً ساعت کار نمیکرد بعدش فهمیدم که برای شروع کارش باید بیت شماره 7 صفر شده باشه. به خاطر همین باید در اول کار به رحیستر مربوط به ثانیه مقدار صفر ریخته بشه

                کد:
                void main(void)
                {
                i2c_start();
                k=rtc_read(0x00);
                if((k & 0x80)==0x80)
                {
                rtc_write(0x00,0);
                rtc_set_time(0,0,0);
                }
                i2c_stop();
                کاری که کردم اینه که اول اومدم رجیستر ثانیه رو خوندم و مقدارش رو توی k ذخیره کردم بعدش گفتم اگه پر ارزش ترین بیتش یک باشه پس باید صفرش کنم و در حقیقت آیسی DS1307 اولین بار هست که به میکرو وصل شده و شروع به کار کرده چون اگه دفعه اولش نبود( چون باتری بهش وصله) بیت پر ارزشش باید قبلاً صفر شده بود ولی نشده. پس مقدار صفر رو میریزم توی رجیستر مربوط به ثانیه که آدرسش 0X00 هست و برای این که اگر احیاناً دقیقه و ساعت شمار مقدار غیر صفر داشتن اونها رو هم صفر کردم( چون DS1307 برای اولین باره که به میکرو وصل شده)

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

                دیدگاه


                  #38
                  پاسخ : مشکل با بهم ریختن زمان در ds1307

                  نوشته اصلی توسط E.N
                  سلام
                  من اولین بار که با DS1307 کار میکردم مشکلم این بود که اصلاً ساعت کار نمیکرد بعدش فهمیدم که برای شروع کارش باید بیت شماره 7 صفر شده باشه. به خاطر همین باید در اول کار به رحیستر مربوط به ثانیه مقدار صفر ریخته بشه

                  کد:
                  void main(void)
                  {
                  i2c_start();
                  k=rtc_read(0x00);
                  if((k & 0x80)==0x80)
                  {
                  rtc_write(0x00,0);
                  rtc_set_time(0,0,0);
                  }
                  i2c_stop();
                  کاری که کردم اینه که اول اومدم رجیستر ثانیه رو خوندم و مقدارش رو توی k ذخیره کردم بعدش گفتم اگه پر ارزش ترین بیتش یک باشه پس باید صفرش کنم و در حقیقت آیسی DS1307 اولین بار هست که به میکرو وصل شده و شروع به کار کرده چون اگه دفعه اولش نبود( چون باتری بهش وصله) بیت پر ارزشش باید قبلاً صفر شده بود ولی نشده. پس مقدار صفر رو میریزم توی رجیستر مربوط به ثانیه که آدرسش 0X00 هست و برای این که اگر احیاناً دقیقه و ساعت شمار مقدار غیر صفر داشتن اونها رو هم صفر کردم( چون DS1307 برای اولین باره که به میکرو وصل شده)

                  البته نمیدونم مشکل شما با این کار حل بشه یا نه ولی گفتم شاید بدردتون بخوره
                  سلام و ممنون از راهنماییتون
                  فکر میکنم راه حل مشکل منم همینه، اما نمیتونم این مقدار رو صفر کنم. من با بسکام کار میکنم و از کدویژن سر در نمیارم، اگه ممکنه برنامه بسکامشو برام بنویسین. مرسی
                  تشکر نکن، صلوات بفرست:

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

                  دیدگاه


                    #39
                    پاسخ : مشکل با بهم ریختن زمان در ds1307

                    نوشته اصلی توسط nematollahian نمایش پست ها
                    سلام و ممنون از راهنماییتون
                    فکر میکنم راه حل مشکل منم همینه، اما نمیتونم این مقدار رو صفر کنم. من با بسکام کار میکنم و از کدویژن سر در نمیارم، اگه ممکنه برنامه بسکامشو برام بنویسین. مرسی

                    I2cstart ' Generate start code
                    I2cwbyte Ds1307w ' send address
                    I2cwbyte 0 ' starting address in 1307
                    I2cwbyte 0 ' Send Data to SECONDS
                    I2cstop

                    دیدگاه

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