اطلاعیه

Collapse
No announcement yet.

سوال درباره ساعت rtc در AVR

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

    سوال درباره ساعت rtc در AVR

    سلام به همه دوستان
    چند وقته که با ساعت دقیق (RTC) در میکروی AVR کار می کنم ولی نمیتونم مشکل چند ثانیه در روز عقب افتادنشو بر طرف کنم :cry:
    من با bascom کار میکنم و اگه از دوستان کسی می تونه کمکم کنه خواهش می کنم جواب بده

    #2
    پاسخ : سوال درباره ساعت rtc در AVR

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

    دیدگاه


      #3
      پاسخ : سوال درباره ساعت rtc در AVR

      به نظر من برای پروژه هایی که در اونا میخواید از ساعت و تاریخ بهره ببرید بهتره از آی سی های Real Time Clock استفاده کنید که در اصطلاح
      بهشون Time Keeper هم میگند. مثل آی سی هشت پایه DS1307 که با یه باتری لیتیومی میتونه زمان رو تا 10 سال نگه داره ( باتری سه ولتی و 48mAh )
      در این جور پروژه ها فکر نکنم استفاده از RTC داخلی میکرو زیاد جالب باشه :smile:
      منبع : پست های آقای شاکلی در پرشین تولز
      از ماست که بر ماست !

      دیدگاه


        #4
        پاسخ : سوال درباره ساعت rtc در AVR

        نوشته اصلی توسط Karim
        به نظر من برای پروژه هایی که در اونا میخواید از ساعت و تاریخ بهره ببرید بهتره از آی سی های Real Time Clock استفاده کنید که در اصطلاح
        بهشون Time Keeper هم میگند. مثل آی سی هشت پایه DS1307 که با یه باتری لیتیومی میتونه زمان رو تا 10 سال نگه داره ( باتری سه ولتی و 48mAh )
        در این جور پروژه ها فکر نکنم استفاده از RTC داخلی میکرو زیاد جالب باشه :smile:

        کریم آقا درست میگن،علاوه بر اینها قابلیت ارتباط I2C ،ماههای 31 روزه و سال کبیسه هم در تقویم(میلادی) این آی سی ها گنجانده شده،دارای ساعت داخلی با نمایشگر AM/PM، دارای مدار داخلی برای تشخیص قطع تغذیه که به طور خودکار از باتری استفاده می کنه
        در دیر مغان آمد یارم قدحی در دست
        مست از می می خواران از نرگس مستش مست

        دیدگاه


          #5
          پاسخ : سوال درباره ساعت rtc در AVR

          بله همه این امکانات رو دارند فقط اشکالشون اینکه روزهای هفته ( شنبه ، یکشنبه و ... ) رو حساب نمی کنند که اونم میشه براحتی با یه برنامه درستش
          حتی شما میتونید با این آی سی و الگوریتم تبدیل تاریخ میلادی به شمسی ، تاریخ هجری شمسی رو هم در پروژه خودتون داشته باشید
          منبع : پست آقای شاکلی در پرشین تولز
          از ماست که بر ماست !

          دیدگاه


            #6
            پاسخ : سوال درباره ساعت rtc در AVR

            از همه دوستان متشکرم
            من در مورد ds1307 و کارایی اون اطلاعاتی دارم ولی چون توی شهرمون کرمانشاه پیدا نکردم وکارم یمقدار عجله اییبود
            خواستم از AVR ی که تو مدارم هست استفاده کنم حالا اگه دوستان در موردش کمکم کنند ممنون می شم.
            برنامه پیکربندی ساعت در bascom :

            دیدگاه


              #7
              پاسخ : سوال درباره ساعت rtc در AVR

              نوشته اصلی توسط spartan II
              از همه دوستان متشکرم
              من در مورد ds1307 و کارایی اون اطلاعاتی دارم ولی چون توی شهرمون کرمانشاه پیدا نکردم وکارم یمقدار عجله اییبود
              خواستم از AVR ی که تو مدارم هست استفاده کنم حالا اگه دوستان در موردش کمکم کنند ممنون می شم.
              برنامه پیکربندی ساعت در bascom :
              دوستان عزیز اگر الگوریتم تبدیل تقویم میلادی به شمسی را دارید لطفا در سایت قرار دهید.

              با تشکر

              دیدگاه


                #8
                پاسخ : سوال درباره ساعت rtc در AVR

                سلام
                برای الگوریتم میلادی به شمسی به کتاب "میکروکنترلرهای AVR و کاربردهای آن" نوشته مهندس امیر ره افروز مراجعه کنید.
                در دیر مغان آمد یارم قدحی در دست
                مست از می می خواران از نرگس مستش مست

                دیدگاه


                  #9
                  پاسخ : سوال درباره ساعت rtc در AVR

                  الان ندارم ولی حتما اگه آماده بود می زارم

                  دیدگاه


                    #10
                    پاسخ : سوال درباره ساعت rtc در AVR

                    سلام،

                    آقای ره افروز تو این کتاب فقط برنامه رو نوشته و در مورد الگوریتم توضیحی نداده، اگر الگوریتم میلادی به شمسی رو می خواهید http://www.astro.uni.torun.pl/~kb/personal.html این الگوریتم رو پیاده کرده ، من با همین به زبان بیسیک یه برنامه نوشتم و دقیق هم کار میکنه.

                    کد:
                    Dim Gyear As Integer                    'input gregorian(miladi) year
                    Dim Gday As Integer                     'input gregorian day
                    Dim Gmonth As Integer                    'input gregorian month
                    Dim Gdayofyear As Integer
                    Dim Gyear_ As Integer
                    
                    Dim Jday As Integer                     'Output jalali(shamsi) day
                    Dim Jmonth As Integer                    'Output Jalali month
                    Dim Jyear As Integer                    'Output Jalali year
                    Dim Jdayofyear As Integer
                    
                    Dim Gnumdayofyear As Integer
                    Dim Isleapyear As Bit
                    Dim Isleapyearp As Bit
                    
                    Dim Iloop As Byte
                    Dim Temp1 As Integer
                    Dim Temp2 As Integer
                    Dim Temp3 As Integer
                    Dim Temp4 As Integer
                    
                    Dim Jmonth_a(12) As Byte
                    Dim Gmonth_a(12) As Byte
                    
                    Gmonth_a(1) = 31
                    Gmonth_a(2) = 28
                    Gmonth_a(3) = 31
                    
                    Gmonth_a(4) = 30
                    Gmonth_a(5) = 31
                    Gmonth_a(6) = 30
                    
                    Gmonth_a(7) = 31
                    Gmonth_a(8) = 31
                    Gmonth_a(9) = 30
                    
                    Gmonth_a(10) = 31
                    Gmonth_a(11) = 30
                    Gmonth_a(12) = 31
                    
                    Gnumdayofyear = 365
                    
                    Gyear = 2006                        'Sample gregorian (miladi) Year
                    Gday = 11                          'Sample gregorian day
                    Gmonth = 11                         'Sample gregorian month
                    
                    Temp1 = Gyear Mod 4
                    Temp2 = Gyear Mod 100
                    Temp3 = Gyear Mod 400
                    Temp4 = Temp1 And Temp2
                    
                    If Temp4 <> 0 Or Temp3 = 0 Then
                      Gmonth_a(2) = 28
                    Else
                      Gmonth_a(2) = 29
                    End If
                    
                    
                    Gyear_ = Gyear - 1
                    Temp1 = Gyear_ Mod 4
                    Temp2 = Gyear_ Mod 100
                    Temp3 = Gyear_ Mod 400
                    Temp4 = Temp1 And Temp2
                    
                    If Temp4 <> 0 Or Temp3 = 0 Then
                     Reset Isleapyearp
                    Else
                     Set Isleapyearp
                    End If
                    
                    Temp1 = Gmonth - 1
                    
                    For Iloop = 1 To Temp1
                      Gdayofyear = Gmonth_a(iloop) + Gdayofyear
                    Next
                    Gdayofyear = Gday + Gdayofyear
                    
                    
                    If Gdayofyear > 79 Then
                    
                      Temp1 = Gdayofyear - 79
                      Jyear = Gyear - 621
                    
                      If Temp1 < 186 Then
                    
                      Temp2 = Temp1 Mod 31
                      Temp3 = Temp1 / 31
                    
                       If Temp2 = 0 Then
                         Jmonth = Temp3
                         Jday = 31
                       Else
                         Jmonth = Temp3 + 1
                         Jday = Temp2
                       End If
                    
                      Else
                    
                       Temp2 = Temp1 - 186
                       Temp3 = Temp2 Mod 30
                       Temp4 = Temp2 / 30
                    
                       If Temp3 = 0 Then
                         Jmonth = Temp4 + 6
                         Jday = 30
                       Else
                         Jmonth = Temp4 + 7
                         Jday = Temp3
                       End If
                    
                      End If
                    
                    Else
                    
                      Jyear = Gyear - 622
                    
                      If Isleapyearp = 1 Then
                       Gdayofyear = Gdayofyear + 11
                      Else
                       Gdayofyear = Gdayofyear + 10
                      End If
                    
                      Temp2 = Gdayofyear Mod 30
                      Temp3 = Gdayofyear / 30
                    
                      If Temp2 = 0 Then
                       Jmonth = Temp3 + 9
                       Jday = 30
                      Else
                       Jmonth = Temp3 + 10
                       Jday = Temp2
                      End If
                    
                      Waitms 1
                    
                    End If
                    There is nothing so practical as a good theory. — Kurt Lewin, 1951

                    دیدگاه


                      #11
                      پاسخ : سوال درباره ساعت rtc در AVR

                      برای استفاده از rtc در میکروهای avr شما بایدفیوز بیت ckopt را صفر کنید و یا دو عدد خازن سر راه کریستال 32kh قرار دهید در غیر اینصورت در طول روز سه چهار ثانیه خطا خواهد داشت
                      برای استفاده از تاریخ هجری شمسی هم اگر از کامپایلر
                      bascom 1.11.8.1 استفاده میکنید ساده ترین راه استفاده از دستورات خود کامپایلر است البته با استفاده از library زیر که خودم آن را دستکاری کرده ام. برای استفاده از آن ، باید آن را در
                      دایرکتوری bascom وپوشه lib جایگزین فایل قبلی کنید. از این پس میتوانید بااستفاده از دستورات خود کامپایلر از تقویم هجری شمسی استفاده کنید. درضمن سالهای کبیسه هم محاسبه شده است.
                      http://www.4shared.com/file/9163042/62bb5737/mcs.html

                      دیدگاه


                        #12
                        پاسخ : سوال درباره ساعت rtc در AVR

                        به نظر من بهترین گزینه برای rtc آی سی هایی هستند که اسیلاتور کالیبره شده داخلی دارند .و بعضی باطری داخلی هم دارند

                        مثل MT48T86 که قیمت مناسبی هم دارد( 3500 تومان)

                        دیدگاه


                          #13
                          پاسخ : سوال درباره ساعت rtc در AVR

                          نوشته اصلی توسط majid_teh2005
                          به نظر من بهترین گزینه برای rtc آی سی هایی هستند که اسیلاتور کالیبره شده داخلی دارند .و بعضی باطری داخلی هم دارند

                          مثل MT48T86 که قیمت مناسبی هم دارد( 3500 تومان)
                          سلام
                          دوستان اگر براتون ممکن هست یه مدار و برنامه نمونه با پیک یا ای وی آر معرفی کنید تا من هم بتونم اونو یاد بگیرم


                          متشکرم


                          موفق باشید :smile:
                          [left][move][b][color=green][size=11pt]ما می توانیم .
                          ، همین ... *. * * *. * * * [color=re

                          دیدگاه


                            #14
                            پاسخ : سوال درباره ساعت rtc در AVR

                            سلام شما می تونید با مراجعه به سایت www.atmel.com قسمت document مربوط به AVR فایل PDF REAL TIME CLOCK را دانلود کرده و نمونه مدار هم تو اون هستش




                            برای تشکر از امتیاز + استفاده کنید

                            دیدگاه

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