اطلاعیه

Collapse
No announcement yet.

تایمر های میکرو

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

    تایمر های میکرو

    دوستان من می خوام با تایمر 0 یا 1 زمان دقیق 1ثانیه بسازم ، نه زمانی در حدود ثانیه ، اگر هم امکان باشه این زمان کسری از ثانیه هم باشه خوبه اما فقط می خوام که دقیق باشه و اعشار ازش پیدا نشه ؛ با بسکام کار میکنم/. :read:
    وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

    #2
    پاسخ : تایمر های میکرو

    یعنی یکی نیست جواب بده؟ :angry:
    وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

    دیدگاه


      #3
      پاسخ : تایمر های میکرو

      سلام
      اگه میخوای زمانت خیلی خیلی دقیق باشه باید از تایمر 2 که آسنکرون هست یعنی کلاکش از یه منبع کلاک خارجی تامین میشه استفاده کنی.
      برای منبع کلاک هم باید از کریستال ساعت که مقدارش 32768 هرتزه.
      یه روش دیگه هم هست که میتونی از آی سی ds1307 استفاده کنی که خودش برات زمانو میشماره و فقط شما به وسیله میکرو اون اطلاعاتو میخونید از روش
      برای اطلاعات بیشتر برو به تایپیک زیر
      http://www.eca.ir/forum2/index.php?topic=38492.0
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه


        #4
        پاسخ : تایمر های میکرو

        سلام moslem1368 :applause:

        تشکر ، یعنی باید با RTC تایم دقیق رو بسازیم ، درسته؟

        یعنی چطوریه ؟ که تایمر2 آسنکرون هستش؟اگه توضیح بیشتر بدی ممنون میشم/.

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

        دیدگاه


          #5
          پاسخ : تایمر های میکرو

          سلام محمد جان
          سکنرون و آسنکرون یعنی همزمان و غیر همزمان کاری به جزئیاتش نداریم
          برای این به تایمر2 میگن آسنکرون که شما میتونی یه کریستال جدای از میکرو براش بذاری
          ببین پایه های XTAL1 و XTAL2 در میکرو کنترلر واسه چیه؟
          برای نصب کریستال خارجی که میکرو کلاکش از اون تامین بشه
          و پایه های TOSC1 و TOSC2 هم برای گذاشتن کریستال خارجی برای تایمر 2 هستش
          چون این دو جزء یعنی پردازنده میکروکنترلر و تایمر2 منابع کلاک متاوتی دارند پس مد کاری آنها غیر همزمان یا آسنکرون هستش
          البته دوست عزیز من بهت پیشنهاد میکنم هم با تایمر2 و هم با آی سی ds1307 کار کن اما تو پروژه هات حتما از ds1307 استفاده کن
          گفت که دیوانه نهی لایق این خانه نهی

          دیدگاه


            #6
            پاسخ : تایمر های میکرو

            ممنون مسلم جان ، پس آسنکرون برا همین میگن!!!!!!! :read:

            راستی با تایمر 1 و 2 بخوایم کار کنیم ، چند تا مد داره ، می تونی واسه مدهاشون به غیر از تایمر ، کانتر و PWM با یه توضیح هر کدومشون رو توضیح بدی عزیز؟

            تشکر :nerd:
            وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

            دیدگاه


              #7
              پاسخ : تایمر های میکرو

              pdf زیر درمورد تایمر ها و مد هاشون کامل گفته. مثال هم برا هر کدم داره
              بخون اگه جاییش اشکال داشتی بگو
              http://www.4shared.com/office/RWCjNHe_/AVR_dot_ir.html
              گفت که دیوانه نهی لایق این خانه نهی

              دیدگاه


                #8
                پاسخ : تایمر های میکرو

                مسلم جان ، داداش این به زبان C گفته ، اما من با بسکام کارمیکنم/. :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry:
                وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

                دیدگاه


                  #9
                  پاسخ : تایمر های میکرو

                  جدی؟
                  منم که C کار میکنم. البته بگم درسته بسکام راحتتره ولی C خیلی بهتره
                  گفت که دیوانه نهی لایق این خانه نهی

                  دیدگاه


                    #10
                    پاسخ : تایمر های میکرو

                    آره دقیقا ، الگوریتم رو با c بهتر میشه پیاده کرد ، اما دیگه با بسکام عادت کردم و حسابی درگیرم باهاش :angry: :angry: :angry: :angry:

                    فقط مدهای مختلف رو می خوام درک کنم ، بعد برم رو برنامه نویسیش :read:

                    توضیح خوب و مختصر بگی با ذکر یه چند تا مثال خیلی کارم راه میفته :nerd:

                    ممنون دادا :nice:
                    وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

                    دیدگاه


                      #11
                      پاسخ : تایمر های میکرو

                      سلام به دوست عزیز ، آقای یوسفی !!! :bye
                      کاری نداره که برادر !!! به یاد زمانی که با بسکام خاطره ها داشتیم ( ) ، چند تا مثال میذارم براتون : ( :eek: )
                      مثال یک : ساخت زمان 1 ثانیه به وسیله تایمر 0 میکرو با فرض کریستال 1MHz :
                      همونطور که میدونین این تایمر 8 بیتی است و نهایتا تا 255 میشماره . با دستور زیز معرفی میشه :
                      کد:
                      CONFIG TIMER0 = TIMER ,PREACALE =1|8|64|256|1024
                      محاسبه زمان به این صورته :
                      زمان = (مقدار بیت تایمر * PREACALE ) / مقدار کریستال
                      (زمان مساوی است با مقدار بیت تایمر ضرب در دقت ، تقسیم بر مقدار کریستال )!!! به این میگن فرمول فارسی! :eek:
                      با شروع شمارش ، بعد از رسیدن مقدار تایمر به 255 ، سرریز میشه و اگه وقفه سراسری و تایمر فعال باشه ، به یه برچسب دلخواه و با استفاده از دستور زیر ، پرش میکنه :
                      کد:
                      ON OVF0 LABLE
                      خب ، با فرض کریستال 1MHz و مقدار PREACALE برابر 1024 ، حد اکثر زمان قابل تولید در یک بار سرریزی تایمر تقریبا برابر 262 میلی ثانیه است . کافی است مقدار تایمر رو 0 بدیم و پس از شروع ، با هر بار سرریز تایمر ، یک واحد به یک متغیر دلخواه اضافه کنیم . هر وقت این متغییر برابر 4 شد ، حدود یک ثانیه ( دقیقا 1048 میلی ثانیه ) بدست میاد . با قرار دادن مقدار مناسب اولیه در تایمر ، میشه این عدد رو بهبود داد! اینم برنامه :
                      کد:
                      $regfile = "m32def.dat"
                      $crystal = 1000000
                      Dim x As Byte
                      Dim y As Byte
                      Config Timer0 = Timer , Prescale = 1024
                      Enable Interrupts
                      Enable Timer0
                      On Timer0 sarriz
                      Start Timer0
                      Do
                      ..................
                      Loop
                      End
                      
                      sarriz:
                      Incr x
                      If x > 3 Then
                      Incr y
                      enf if
                      return
                      مثال دوم : استفاده از تایمر 1 :
                      تمام توضیحات مثل بالاست ، اما این تایمر 16 بیتیه و با در نظر گرفتن سرریز تا 65536 میشماره . توضیحات ساده س و تا حدود زیادی مثل تایمر 0 هست . مثلا برای ساخت زمان حدود 1 ثانیه ، میشه به این صورت کار کرد :
                      فرکانس میکرو 4MHz و مقدار PREACALE برابر 64 . پیکره بندی تایمر به این صورته :
                      کد:
                      Config Timer1 = Timer , PRESCALE = 1| 8 | 64 | 256 | 1024
                      با مقادیر بالا زمانی حدود 1.04 ثانیه تولید میشه . اینم یه کد ساده :
                      کد:
                      $regfile = "m32def.dat"
                      $crystal = 1000000
                      Dim x As Byte
                      Config Timer1 = Timer , Prescale = 64
                      Enable Interrupts
                      Enable Timer1
                      On Timer1 sarriz
                      Start Timer1
                      Do
                      ......................
                      Loop
                      End
                      
                      Incr x
                      مثال سوم (و البته آخر :redface: !!!) :
                      همونطور که دوست عزیز آقای مسلم فرمودن میشه با کریستال 32.768MHz هم این کار رو کرد . برای این کار باید از تایمر 2 استفاده کرد که 8 بیتیه و محاسبات مثل قبل هست و با این دستور پیکره بندی میشه :
                      کد:
                      CONFIG TIMER2 = TIMER , ASYNC = ON|OFF , PREACALE=1|8|32|64|128|256|1024
                      خب حالا اگه ASYNC رو برابر ON قرار بدین ، فرکانس تایمر از کریستال مذکور که به پایه های TOSC1 و TOSC2 میکرو وصل هست تامین میشه .حالا اگه مقدار PRESCALE برابر 128 باشه ، دقیقا راس 1 ثانیه ، تایمر سرریز میشه و با استفاده از وقفه اون ، مثلا میشه یه ساعت خوب ساخت !! :agree:
                      برنامش هم مثل تایمر 0 و 1 هسست با این تفاوت که باید تایمر 2 پیکره بندی بشه !!! ( جدی!!! :eek: )
                      اگه بازم سوال یا ابهامی بود ، در حد توان در خدمتم !!!
                      یا علی !
                      در انتظار تو چشمم سپید گشت و غمی نیست
                      اگر قبول تو افتد، فدای چشم سیاهت

                      http://upload7.ir/images/83524254953910725183.gif

                      دیدگاه


                        #12
                        پاسخ : تایمر های میکرو

                        سلام به اقا مسعود :nerd:

                        اول تشکر که توضیح خوب در رابطه با تایمر دادی ، اما یه سوال وقتی داریم با تایمر2 زمان میسازیم و کریستال رو به 2 پایه مذکور میزنیم زمان دقیق یک ثانیه رو میسازه و 2 تا سوال پیش میاد
                        1-RTC میکرو و آی سی DS1307 چه تفاوتی با هم دارن ؛ :eek:
                        2-اگه بخوایم در حد میلی ثانیه بشماریم باید چیکار کنیم؟ :angry:

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

                        دیدگاه


                          #13
                          پاسخ : تایمر های میکرو

                          1 - شما با ds1307 میتونین علاوه بر داشتن ساعت دقیق ، تاریخ رو هم داشته باشین ، و همینظور قابلیت اتصال باتری بک پ برای جلو گیری از پاک شدن اطلاعات در صورت قطع برق رو داره!
                          آقا محسن هم در این مورد یه لینک گذاشتن که چند تا پست بالاتره !!!
                          2 - اگه توضیحاتی که دادم رو دقیق خونده باشین ، جواب رو پیدا میکنین ! باید با توجه به ظرفیت شمارش تایمر ، یه مقدار اولیه در داخل رججیستر تایمر مربوطه بنویسین و تایمر رو استارت کنین . برای نوشتن در تایمر هم از دستور ساده زیر استفاده میشه : (مثلا تایمر 1 )
                          کد:
                          Timer1 = value
                          در انتظار تو چشمم سپید گشت و غمی نیست
                          اگر قبول تو افتد، فدای چشم سیاهت

                          http://upload7.ir/images/83524254953910725183.gif

                          دیدگاه


                            #14
                            پاسخ : تایمر های میکرو

                            مرسی مسعود جان ، منهواسم به اون لینک هواسم نبود

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

                            دیدگاه

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