اطلاعیه

Collapse
No announcement yet.

کریستال خارحی

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

    کریستال خارحی

    سلام
    من میخوام فقط یک موتور گیربکس دار رو توسط AVR چپ گرد راست گرد کنم و زمان هم بهش بدم ولی وقتی از wait استفاده میکنم زمان دقیق در نمیاد میخواستم بدونم چیکار کنم که این زمان توقف موتور دقیق باشه؟؟؟
    شندیده بودم از کریستال میشه استفاده کرد؟
    اگه راهنماییم کنید ممنون میشم دوستان

    #2
    پاسخ : کریستال خارحی

    شما با همون کلاک داخلی میکرو هم میتونی یه زمان دقیق بسازی(با استفاده از timer )
    مثال:تایمر رو توی مد ctc راه اندازی کن و طبق مقداری که برای OCR میزاری میتونی زمان رو کنترل کنی.

    دیدگاه


      #3
      پاسخ : کریستال خارحی

      نوشته اصلی توسط cortex-m3
      شما با همون کلاک داخلی میکرو هم میتونی یه زمان دقیق بسازی(با استفاده از timer )
      مثال:تایمر رو توی مد ctc راه اندازی کن و طبق مقداری که برای OCR میزاری میتونی زمان رو کنترل کنی.
      ممنون، ولی من کلا زمان رو نمیخوام یعنی فقط برای مدت زمان توقف موتور لازم دارم دقیق باشه یعنی بگم تا یه جایی موتور بچرخه بعدش مثلا نیم ساعت توقف داشته باشه و دوباره جهتش معکوس بشه و همینطور نیم ساعت دیگه توقف کنه، فقط میخوام وقتی مینویسیم wait 1800 موتورم نیم ساعت دقیق توقف داشته باشه...

      دیدگاه


        #4
        پاسخ : کریستال خارحی

        سلام
        دوست عزیز شما با تایم2 وکریستال 32768 میتونی زمان دقیق یک ثانیه داشته باشی

        دیدگاه


          #5
          پاسخ : کریستال خارحی

          نوشته اصلی توسط میثم قاسمی نیا
          سلام
          دوست عزیز شما با تایم2 وکریستال 32768 میتونی زمان دقیق یک ثانیه داشته باشی
          ممنون، بیشتر میشه توضیح بدید؟

          دیدگاه


            #6
            پاسخ : کریستال خارحی

            نوشته اصلی توسط qaem
            ممنون، ولی من کلا زمان رو نمیخوام یعنی فقط برای مدت زمان توقف موتور لازم دارم دقیق باشه یعنی بگم تا یه جایی موتور بچرخه بعدش مثلا نیم ساعت توقف داشته باشه و دوباره جهتش معکوس بشه و همینطور نیم ساعت دیگه توقف کنه، فقط میخوام وقتی مینویسیم wait 1800 موتورم نیم ساعت دقیق توقف داشته باشه...
            این کار اگه میخای دقیق باشه باید با TIMER کار کنی.
            روش کار :شما کمترین زمانی که نیاز داری رو با مقدار دادن به OCR در مد CTC میسازی و بعد از ضرایب اون زمان استفاده میکنی.
            مثال :میخواهید یک ثانیه موتور روشن و 5 ثانیه موتور خاموش باشه .برای این کار شما با تایمر زمان 1 ثانیه رو میسازید و توی وقفه ی سریز تایمر یه شمارنده(مثلا n) میزارید که وقتی به 5 رسید.شما زمان 5 ثانیه رو دارید.

            کمک در مورد برنامه نویسی: شما اون کارایی که گقتمو با مقدار دهی به ریجسترها و توی وقفه انجام میدید . در واقع هنوز توی حلقه ی WHILE کدی نیست. توی حلقه ی while دو تا while دیگه تعریف کنید :
            while(n==1){
            PORTx.n=0;
            }

            while(n==5){
            PORTx.n=1;
            }
            اون حلقه اولی هر چی توش بنویسید به مدت 1 ثانیه اجرا میشه و برای حلقه دومی به مدت 5 ثانیه.

            دیدگاه


              #7
              پاسخ : پاسخ : کریستال خارحی

              نوشته اصلی توسط cortex-m3
              این کار اگه میخای دقیق باشه باید با TIMER کار کنی.
              روش کار :شما کمترین زمانی که نیاز داری رو با مقدار دادن به OCR در مد CTC میسازی و بعد از ضرایب اون زمان استفاده میکنی.
              مثال :میخواهید یک ثانیه موتور روشن و 5 ثانیه موتور خاموش باشه .برای این کار شما با تایمر زمان 1 ثانیه رو میسازید و توی وقفه ی سریز تایمر یه شمارنده(مثلا n) میزارید که وقتی به 5 رسید.شما زمان 5 ثانیه رو دارید.

              کمک در مورد برنامه نویسی: شما اون کارایی که گقتمو با مقدار دهی به ریجسترها و توی وقفه انجام میدید . در واقع هنوز توی حلقه ی WHILE کدی نیست. توی حلقه ی while دو تا while دیگه تعریف کنید :
              while(n==1){
              PORTx.n=0;
              }

              while(n==5){
              PORTx.n=1;
              }
              اون حلقه اولی هر چی توش بنویسید به مدت 1 ثانیه اجرا میشه و برای حلقه دومی به مدت 5 ثانیه.
              یعنی در هر صورت از اوون کریستا 32768 باید استفاده کنم؟

              دیدگاه


                #8
                پاسخ : پاسخ : کریستال خارحی

                نوشته اصلی توسط qaem
                یعنی در هر صورت از اوون کریستا 32768 باید استفاده کنم؟
                ????
                پیشنهاد میکنم بری مبحث تایمر رو بخونی
                شما از تایمر استفاده کن حالا اگه بخای میتونی از کریستال هم استفاده کنی(کریستال توی تغییرات دمایی پایدارتره و کار شما با همون کلاک داخلی راه میفته)

                دیدگاه


                  #9
                  پاسخ : کریستال خارحی

                  نوشته اصلی توسط qaem
                  سلام
                  من میخوام فقط یک موتور گیربکس دار رو توسط AVR چپ گرد راست گرد کنم و زمان هم بهش بدم ولی وقتی از wait استفاده میکنم زمان دقیق در نمیاد میخواستم بدونم چیکار کنم که این زمان توقف موتور دقیق باشه؟؟؟
                  شندیده بودم از کریستال میشه استفاده کرد؟
                  اگه راهنماییم کنید ممنون میشم دوستان
                  زیاد نمیخاد پیچیدش کنی
                  کنترل موتور که اینقد جفنگ بازی نمیخاد

                  با همون اسیلاتور rc داخلی و تایمر یک کارت بهتر راه میوفته تا بری کریستال32768 استفاده کنی

                  دیدگاه


                    #10
                    پاسخ : پاسخ : کریستال خارحی

                    نوشته اصلی توسط cortex-m3
                    ????
                    پیشنهاد میکنم بری مبحث تایمر رو بخونی
                    شما از تایمر استفاده کن حالا اگه بخای میتونی از کریستال هم استفاده کنی(کریستال توی تغییرات دمایی پایدارتره و کار شما با همون کلاک داخلی راه میفته)
                    آقا دم شما گرم، تقریبا فهمیدم

                    دیدگاه

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