اطلاعیه

Collapse
No announcement yet.

مشکل دقیق نبودن ساعت

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

    مشکل دقیق نبودن ساعت

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

    [code=vb]$regfile = "m16adef.dat"
    $crystal = 8000000
    Config Porta = Output
    Config Portb = Output
    Config Pinc.0 = Input
    Config Pinc.7 = Input
    Dim A As Byte
    Dim B As Byte
    Dim C As Byte
    Dim D As Byte
    Dim E As Integer

    F:
    E = 0
    Do
    Incr E
    If Pinc.0 = 1 Then Goto J 'afzayesh daghighe
    If Pinc.7 = 1 Then Goto K 'afzayesh sa at
    Portb = Lookup(a , H)
    Porta = &H08
    Waitms 1
    Portb = Lookup(b , H)
    Porta = &H04
    Waitms 1
    Portb = Lookup(c , H)
    Porta = &H02
    Waitms 1
    Portb = Lookup(d , H)
    Porta = &H01
    Waitms 1
    If E = 15000 Then Goto G
    Loop

    K:
    Incr C
    Waitms 120
    Goto L

    J:
    Waitms 120

    G:
    Incr A
    L:
    If A > 9 Then Incr B
    If A > 9 Then A = 0
    If B > 5 Then Incr C
    If B > 5 Then B = 0
    If D = 2 Then Goto I
    If C > 9 Then Incr D
    If C > 9 Then C = 0
    Goto F



    I:
    If C = 4 Then D = 0
    If C = 4 Then C = 0
    Goto F

    H:
    Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10[/code]

    #2
    پاسخ : مشکل دقیق نبودن ساعت

    سلام
    دوست عزیز این برنامه شما با دستورات تاخیر نوشته شده که خب معلومه که دقیق نیستن.شما باید از تایمر برای درست کردن یک ثانیه استفاده کنید.که این کار رو تایمر 2 میکرو با یه کریستال ساعت انجام میده اما بازم خودتو الافش نکن.یادمه چقداوایل پیگیر ساعت با تایمر بودم که وقتی درستش کردم با یه قطع برق همه چی از بین میرفت.
    به شما هم میگم برید سراغ آی سی مخصوص ساعت ینی همون ds 1307 که بایه باتری سکه ای که براش بعنوان بک پ میذارین چندین سال به راحتی کار میکنه حتی اگه میکرو تون هنگ کنه یا تغذیه مدارتون قطع بشه.... :wow:
    نمونه مدارشم توی همین سایت زیاده...
    موفق باشین

    دیدگاه


      #3
      پاسخ : مشکل دقیق نبودن ساعت

      سلام
      ممنون از جوابتون ولی من استفاده از تایمر رو بلد نیستم :sad: و می خواهم که مدارم فقط با AVR باشه :cry:

      دیدگاه


        #4
        پاسخ : مشکل دقیق نبودن ساعت

        نوشته اصلی توسط alireza shabani parsa
        سلام
        ممنون از جوابتون ولی من استفاده از تایمر رو بلد نیستم :sad: و می خواهم که مدارم فقط با AVR باشه :cry:
        بهتره که کار با تایمر avr رو یاد بگیرید چون یکی از بهترین امکاناتش هست
        من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
        آلبرت اینشتین
        منبع: http://fa.wikiquote.org

        دیدگاه


          #5
          پاسخ : مشکل دقیق نبودن ساعت

          سلام:
          میشه ازتون خواهش کنم به من به طور ساده یاد بدید چون من کل این جا و اینترنت رو دنبال این مسئله گشتم وخیلی کم ازش یاد گرفتم بیشتر این مطالب برای دانشگاه هستند وازاون جایی که من اول دبیرستانم و به شدت به الکترونیک علاقه مندم (ازکلاس سوم دبستان الکترونیک رو شروع کردم و پارسال با AVR آشنا شدم) چیزی از اینها نفهمیدم :redface:

          دیدگاه


            #6
            پاسخ : مشکل دقیق نبودن ساعت

            سلام
            شما کافیه یه سرچ کنی و فایل آموزش avr که جناب آقای هاشمی (1nafar) نوشته رو دانلود کنی و بخونی!!
            اگه با codevision میخوایی کار کنی که بهتر از آموزشهای جناب کی نژاد نیست.بنر سایتشون هم بالای انجمن هست knowledgeplus.com

            دیدگاه


              #7
              پاسخ : مشکل دقیق نبودن ساعت

              سلام
              ممنون از لطفتون ولی من با بسکام کار می کنم

              دیدگاه


                #8
                پاسخ : مشکل دقیق نبودن ساعت

                نوشته اصلی توسط alireza shabani parsa
                سلام
                ممنون از لطفتون ولی من با بسکام کار می کنم
                از کریستال ساعت استفاده کنید که قیمت پایینی هم دارد.
                فرکانس 32768.
                میتوانید ب دقت در حد ساعت های معمول دیجیتالی برسید.

                دیدگاه


                  #9
                  پاسخ : مشکل دقیق نبودن ساعت

                  نوشته اصلی توسط MReza.p
                  از کریستال ساعت استفاده کنید که قیمت پایینی هم دارد.
                  فرکانس 32768.
                  میتوانید ب دقت در حد ساعت های معمول دیجیتالی برسید.
                  سلام من کریستال ساعت رو گرفتم اما نمی دونم چجوری وصلش کنم و اصلا برنامش چی میشه لطفا به من کمک کنید خیلی دوست دارم یاد بگیرم :read:

                  دیدگاه


                    #10
                    پاسخ : مشکل دقیق نبودن ساعت

                    نوشته اصلی توسط alireza shabani parsa
                    سلام من کریستال ساعت رو گرفتم اما نمی دونم چجوری وصلش کنم و اصلا برنامش چی میشه لطفا به من کمک کنید خیلی دوست دارم یاد بگیرم :read:
                    کریستال رو ک باید ب همون پایه های XTAL1 و XTAL2 متصل کنید. (در مگا8 و[s] 16 و 32)[/s]
                    برنامه ش رو من با کدویژن چند وقت قبل نوشتم و دارم اگر فایده ای داشت، بگید تا...
                    با بسکام مدت زیادی هست کار نمیکنم، اما اگه یک سرچ ساده بکنید، "بسکام و RTC" مثلن، بی جواب نمی مونید.

                    ویرایش:
                    در مگا16 و مگا32 پایه های TOSC1 و TOSC2 همان 28 و 29، محل RTC هستند.
                    موقع روشن بودن مدار، ب هیچ وجه ب کریستال ساعت دست نزنید.
                    اگر تونستید با پیچیدن سیمی ب دور قطعه و اتصال ب خط منفی، بدنه رو زمین کنید. (نه با لحیمکاری)

                    دیدگاه


                      #11
                      پاسخ : مشکل دقیق نبودن ساعت

                      نوشته اصلی توسط MReza.p
                      کریستال رو ک باید ب همون پایه های XTAL1 و XTAL2 متصل کنید. (در مگا8 و 16 و 32)
                      برنامه ش رو من با کدویژن چند وقت قبل نوشتم و دارم اگر فایده ای داشت، بگید تا...
                      با بسکام مدت زیادی هست کار نمیکنم، اما اگه یک سرچ ساده بکنید، "بسکام و RTC" مثلن، بی جواب نمی مونید.

                      با احترام تمام
                      زمانی که از rtc داخلی برای برنامه ی ساعت استفاده میکنیم باید کریستال ساعت رو به پایه های toc1 , toc2 متصل کنیم
                      امير مسعود مقدم

                      دیدگاه


                        #12
                        پاسخ : مشکل دقیق نبودن ساعت

                        نوشته اصلی توسط masoud.moghaddam21

                        با احترام تمام
                        زمانی که از rtc داخلی برای برنامه ی ساعت استفاده میکنیم باید کریستال ساعت رو به پایه های toc1 , toc2 متصل کنیم
                        در مورد مگا8 مشترک هستند.



                        اما در مورد 16 و 32 بله حق با شماست. 168 و 328 اما مشابه همان مگا8 هستند.
                        ممنون ک تذکر دادید.
                        ی ذره خیلی اطرافم بهم ریخته، حواس پرتی گرفتم!

                        دیدگاه


                          #13
                          پاسخ : مشکل دقیق نبودن ساعت

                          نوشته اصلی توسط MReza.p
                          در مورد مگا8 مشترک هستند.



                          اما در مورد 16 و 32 بله حق با شماست. 168 و 328 اما مشابه همان مگا8 هستند.
                          ممنون ک تذکر دادید.
                          ی ذره خیلی اطرافم بهم ریخته، حواس پرتی گرفتم!
                          ممنون از شما دوست عزیز که به من هم نشون دادید که این دو پایه در چه میکرو هایی مشترک هستند !
                          موفق باشید
                          امير مسعود مقدم

                          دیدگاه


                            #14
                            پاسخ : مشکل دقیق نبودن ساعت

                            سلام به همه خیلی ممنون از اساتید محترم که به من در ساخت این ساعت کمک کردند من بالاخره این ساعت رو ساختم ممنون از همه
                            برنامه:
                            کد:
                            $regfile = "m16adef.dat"
                            $crystal = 8000000
                            Config Porta = Output
                            Config Portb = Output
                            Config Pinc.0 = Input
                            Config Pinc.1 = Input
                            Config Timer2 = Timer , Async = On , Prescale = 128
                            Enable Interrupts
                            Enable Ovf2
                            Dim A As Byte
                            Dim B As Byte
                            Dim C As Byte
                            Dim D As Byte
                            Dim E As Byte
                            Dim F As Byte
                            Dim T As Byte
                            Dim W As Byte
                            Dim Q As Byte
                            Start Timer2
                            On Timer2 G
                            Do
                            If Pinc.0 = 1 Then Incr W
                            If Pinc.1 = 1 Then Incr Q
                            If W = 200 Then Incr C
                            If W = 200 Then W = 0
                            If Q = 200 Then Incr E
                            If Q = 200 Then Q = 0
                            Porta = Lookup(a , X)
                            Portb = &H01
                            Waitms 1
                            Porta = Lookup(b , X)
                            Portb = &H02
                            Waitms 1
                            Porta = Lookup(c , X)
                            Portb = &H04
                            Waitms 1
                            Porta = Lookup(d , X)
                            Portb = &H08
                            Waitms 1
                            Porta = Lookup(e , X)
                            Portb = &H10
                            Waitms 1
                            Porta = Lookup(f , X)
                            Portb = &H20
                            Waitms 1
                            Loop
                            G:
                            T = 9
                            Incr A
                            If A > 9 Then Incr B
                            If A > 9 Then A = 0
                            If B > 5 Then Incr C
                            If B > 5 Then B = 0
                            If C > 9 Then Incr D
                            If C > 9 Then C = 0
                            If D > 5 Then Incr E
                            If D > 5 Then D = 0
                            If F = 2 Then T = 3
                            If E > T Then Incr F
                            If E > T Then E = 0
                            If F > 2 Then F = 0
                            Return
                            X:
                            Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10 ,

                            دیدگاه

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