اطلاعیه

Collapse
No announcement yet.

زمان سنج دقیق

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

    زمان سنج دقیق

    با سلام
    من میخواهم یک زمان سنج دقیق با AVR درست کنم ولی نمیدانم چطوری از کریستال خارجی استفاده کنم و فیوز بیت مربوطه را ست کنم
    اگر کسی کار کرده برایم پاسخ دهد . با کدویژن کار میکنم (دقت میلی ثانیه تا چندین ساعت)
    کمتر سخن گویم
    بیشتر عمل کنیم

    #2
    پاسخ : زمان سنج دقیق

    بهتره از آی سی های real time مثل ds1307 استفاده کنی که دقت بالایی داشته باشه ... فکر نکنم با Avr بشه خیلی دقیق درست کرد .

    دیدگاه


      #3
      پاسخ : زمان سنج دقیق

      سلام
      برای اینکار توو پروگرمرها یک جا برای ست فیوزها گزاشتن
      اما من بیسکام رو پیشنهاد می کنم،وقتی صفحه پروگرمر باز شد،3برگه داره،اولین برگه HEXبرنامه ای هست که نوشتی،دومی برای EEPROM میکروت هست،اما سومی که ما با اون کار داریم،فیوزهارو نشون میده،خوشبختانه اینجا فیوزها به اسم ذخیره شدن،از قسمت Fuse Bit آخرین گزینه یا همون Ext. high Freq. XTآ‌رو انتخاب کنبن(بیتهای 1111:1111) کنار صفحه دکمه Write FS رو بزنین.
      کریستال رو بین پایه هایXTL بزارین
      فراموش نکنین روی پروگرمر هم حتما یک کریستال 4مگ بزارین،وگرنه دیگه میکرو شناخته نمی شه(البته اگه ISP کار نمی کنین و روی پروگرمر سوکت گزاشتین)
      کمی گنگ نوشتم،اول تست کنین،صفحه هایی که گفتم رو ببینین،اگه مشکلی بود،بازم در خدمتم

      دیدگاه


        #4
        پاسخ : زمان سنج دقیق

        نوشته اصلی توسط mpc
        (دقت میلی ثانیه تا چندین ساعت)
        سلام
        برای این رنج می تونی از مد آسنکرون تایمر، توی مدلهایی که این امکان رو دارن استفاده کنی(مثلا تایمر 2 در مگا32)،برای اینکار کریستال ساعت باید روی پایه های TOSC گذاشته بشه

        در دیر مغان آمد یارم قدحی در دست
        مست از می می خواران از نرگس مستش مست

        دیدگاه


          #5
          پاسخ : زمان سنج دقیق

          البته تعداد زیادی از AVR ها هم از RTC پشتیبانی میکنن ،که همون بستن کریستال دوم هست،و برای کریستالهای 32768 مدار داخلی تنظیم شده اما اونطور که یادم میاد اصولا تا 400کیلو هم میشه استفاده کرد(دوباره دیتا شیت رو نگاه خواهم کرد)آ‌برای 32768 هم خود BASCOMآ‌دستوراتش رو داره و توو مثال هاش هست،تقویم میلادی هم داره و ... اما کدویژن رو یادم نمی یاد داشت نه،خیلی وقته بهش دست نزدم،نگاه می کنم می گن،اما اگه عجله داری توو HELPش RTC رو بگرد

          اما برای دقت میلی ثانیه باید یکی از تایمر ها رو فعال کنی و با توجه به خطای بالای مدار RCآ‌داخلی،اصولا همون کریستال خارجی نیاز می شه که روش راه اندازیش رو گفتم

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

          اولین خاطرم از CodeVisionآ‌اینه که به صورت پیش فرض فیوز عدم پروگرم شدن ISPآ‌میکرو رو می نوشت و چند عددی میکروی من رو بی استفاده کرد

          یادم باشه یک تاپیک برای نحوه پاک کردن اونها بزارم ...

          دیدگاه


            #6
            پاسخ : زمان سنج دقیق

            سلام
            باتشکر از پاسخ های شما
            آقای یار محمدی عزیز میشود چگونگی اتصال کریستال را با مثال در یک برنامه برایم بنویسید. اگر کدویژن با شد و در پروتیوس هم کار کند خیلی خیلی متشکرم :rolleyes:
            کمتر سخن گویم
            بیشتر عمل کنیم

            دیدگاه


              #7
              پاسخ : زمان سنج دقیق

              سلام
              شرمنده من برنامه آماده ندارم،چون الان موقع امتحاناست یکم فرصتم کمه وگرنه برات می نوشتم!
              البته چندتا لینک برات میذارم،خودت میتونی بنویسی خیلی سادس!
              توی این صفحه AVR134 رو سرچ کن،Application Notes سایت Atmel هست با عنوان: "Real-Time Clock using the Asynchronous Timer " یه PDF و یه فایل RAR هست،دانلودشون کن،کارت راه می افته!
              http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
              در دیر مغان آمد یارم قدحی در دست
              مست از می می خواران از نرگس مستش مست

              دیدگاه


                #8
                پاسخ : زمان سنج دقیق

                نوشته اصلی توسط KhepeleSibilo
                سلام
                برای اینکار توو پروگرمرها یک جا برای ست فیوزها گزاشتن
                اما من بیسکام رو پیشنهاد می کنم،وقتی صفحه پروگرمر باز شد،3برگه داره،اولین برگه HEXبرنامه ای هست که نوشتی،دومی برای EEPROM میکروت هست،اما سومی که ما با اون کار داریم،فیوزهارو نشون میده،خوشبختانه اینجا فیوزها به اسم ذخیره شدن،از قسمت Fuse Bit آخرین گزینه یا همون Ext. high Freq. XTآ‌رو انتخاب کنبن(بیتهای 1111:1111) کنار صفحه دکمه Write FS رو بزنین.
                کریستال رو بین پایه هایXTL بزارین
                فراموش نکنین روی پروگرمر هم حتما یک کریستال 4مگ بزارین،وگرنه دیگه میکرو شناخته نمی شه(البته اگه ISP کار نمی کنین و روی پروگرمر سوکت گزاشتین)
                کمی گنگ نوشتم،اول تست کنین،صفحه هایی که گفتم رو ببینین،اگه مشکلی بود،بازم در خدمتم
                سلام
                میشه طریقه نصب کریستال و RTC رو برای میکروکنترلر TINY26L رو هم بگید . یک ایا با این کار مشکل WAIT ها هم حل میشه . تایمر هم مشکل تایمر چی اونم حل میشه
                انجمن LABVIEW
                http://www.eca.ir/forum2/index.php?board=279.0
                اموزش میکروکنترلرهای AVR به زبان ساده
                http://www.eca.ir/forum2/index.php/topic,7070.0.html

                دیدگاه


                  #9
                  پاسخ : زمان سنج دقیق

                  سلام
                  الان که دیتا شیتTINY26 رو نگاه میکنم ظاهرا از RTC پشتیبانی نمیکنه ...

                  میشه بدونم مشکل WAIT یا تایمر گه گفتین چی هست ؟؟؟؟!!!!!!!!!

                  دیدگاه


                    #10
                    پاسخ : زمان سنج دقیق

                    نوشته اصلی توسط KhepeleSibilo
                    سلام
                    الان که دیتا شیتTINY26 رو نگاه میکنم ظاهرا از RTC پشتیبانی نمیکنه ...

                    میشه بدونم مشکل WAIT یا تایمر گه گفتین چی هست ؟؟؟؟!!!!!!!!!
                    مثلا من تایمر رو برای زمان یک ثانیه تعریف میکنم ولی زمان عملا بیشتر از یک ثانیه طول میکشه در مورد wait ها هم همینطوره مثلا wait 1 به جای اینکه یک ثانیه تاخیر داشته باشه 5 یا 6 ثانیه تاخیر دارد . اگه ممکنه راهنمایی بفرماییید :smile:
                    انجمن LABVIEW
                    http://www.eca.ir/forum2/index.php?board=279.0
                    اموزش میکروکنترلرهای AVR به زبان ساده
                    http://www.eca.ir/forum2/index.php/topic,7070.0.html

                    دیدگاه


                      #11
                      پاسخ : زمان سنج دقیق

                      برای استفاده از این دستورات،باید در قسمتی فرکانس کریستالی که استفاده کردین رو به کامپایلر بگین تا محاسبات لازم برای اون زمان انجام بشه
                      اگه شما این مقدار رو به طور پیش فرض رها کنین و به فرض روی 4مگ باشه و برای میکروی خودتون کریستال 1 مگ ببندین یا روی Int. RC 1M باشه اونوقت WAIT 1 به جای 1 ثانیه،4ثانیه طول می کشه

                      به فرض توو بیسکام برای این کار کافیه اول خط برنامه تون مثلا برای کریستال 4مگ دستور :
                      $Crystal = 4000000
                      رو اضافه کنین

                      برای تنظیم نوع کریستال خارجی و یا تغییر RCآ‌داخلی هم توضیح دادم اما اگر نکته مبهم داره بگین تا تکمیل کنم ...

                      دیدگاه


                        #12
                        پاسخ : زمان سنج دقیق


                        نوشته اصلی توسط nex2004
                        مثلا من تایمر رو برای زمان یک ثانیه تعریف میکنم ولی زمان عملا بیشتر از یک ثانیه طول میکشه در مورد wait ها هم همینطوره مثلا wait 1 به جای اینکه یک ثانیه تاخیر داشته باشه 5 یا 6 ثانیه تاخیر دارد . اگه ممکنه راهنمایی بفرماییید :smile:
                        سلام
                        در مورد بسکام اطلاعات دقیق ندارم ولی توی کدویژن اگر بخوایم از توابع تاخیر استفاده کنیم باید وقفه عمومی رو غیر فعل کنیم،چون باعث میشه زمان بیشتر از حد مورد نظر بشه!
                        در دیر مغان آمد یارم قدحی در دست
                        مست از می می خواران از نرگس مستش مست

                        دیدگاه


                          #13
                          پاسخ : زمان سنج دقیق

                          با سلام
                          دوستان من در کتاب مرجع کامل میکروکنترلرهای AVR انتشارات نص جواب خودم را پیدا کردم
                          کتاب خوبی است نگاهی به آن بکنید.فکر کنم بهترین کتاب AVR در ایران باشد.
                          باز تشکر از دوستان که وقت میگذارند و جواب نامه ها را میدهند :bye
                          کمتر سخن گویم
                          بیشتر عمل کنیم

                          دیدگاه


                            #14
                            پاسخ : زمان سنج دقیق

                            کد:
                            $regfile = "M16def.dat"
                            $crystal = 4000000
                            Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = _
                             Portb.7 , E = Portb.3 , Rs = Portb.2
                            Config Lcd = 16 * 2
                            
                            
                            Cls
                            
                            Config Clock = Soft , Gosub = Sectic
                            Enable Interrupts
                            Date$ = "09/09/82"
                            Time$ = "10:15:00"
                            
                            Do
                            'Your Program here
                            Loop
                            
                            
                            End
                            
                            
                            Sectic:
                            Home
                            Lcd Time$
                            Locate 2 , 1
                            Lcd Date$
                            Return



                            کد:
                            $regfile = "M32DEF.DAT"
                            $crystal = 7372800
                            
                            
                            
                            Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , _
                            Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
                            Config Lcd = 16 * 2
                            
                            Config Clock = Soft
                            
                            Enable Interrupts
                            
                            
                            Dim Strtime As String * 8
                            Dim Bsec As Byte , Bmin As Byte , Bhour As Byte
                            
                            Cls
                            
                            Bsec = 11 : Bmin = 41 : Bhour = 15
                            Strtime = Time(bsec)
                            
                             Do
                            
                              'Locate 1 , 1
                              'Lcd Time$
                              Locate 2 , 1
                              Lcd Bsec ; ":" ; Bmin ; ":" ; Bhour
                            
                             Loop
                            کریستال تایمر آسنکرون یادت نره
                            ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

                            وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

                            r.babazadeh@yahoo.com

                            دیدگاه


                              #15
                              پاسخ : زمان سنج دقیق

                              با سلام
                              دوست گرامی r.babazadeh
                              متشکرم از برنامه نوشته شده جناب عالی من با کد ویژن کار میکنم و مشکل را با استفاده از کریستال 32768 هرتز حل کردم. :rolleyes:
                              :bye
                              کمتر سخن گویم
                              بیشتر عمل کنیم

                              دیدگاه

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