اطلاعیه

Collapse
No announcement yet.

روش محاسبه تایمر و چنتا سوال دیگه؟

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

    روش محاسبه تایمر و چنتا سوال دیگه؟

    سلام
    یه مشکلی تو محاسبه تایمرا دارم

    اگه بخوایم یه فرکانسی رو از میکرو بگیریم چطور تایمر محاسبه کنیم ؟(محاسبه CTNTn,OCRn )
    خواهشنا روش محاسبشو با توضیح بهم بگید ؟
    یه سوال دیگه تو انتخاب فیوز بیتها واسه استفاده کردن از یه کریستال خارجی مثلا 16Mz ایا این درسته؟لطفا اگه اشتباه درستشو بفرمایید؟



    یه سوال دیگه ایی که داشتم ایا تو پروتئوس فرکانسی رو که از خروجی میکرو نشون میده دقیقه؟ (منظورم اینکه درست نشون میده یا اصلا روش حساب نکنم :redface
    ذكات علم ياد دادنه ....

    #2
    پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

    سلام
    1)فیوز بیت ها درسته(میتونی در دیتا شیت خود میکرو نحوه پرگرام اینا رو در قسمت فیوزبیت ها ببینی)
    2)واسه پیدا کردن فرکانس هم باید ببینی کلاک میکرو را چطوری به واحد تایمر دادی مثلا اگه کلاک 8 مگا است و با استفاده از بیت های CS اونا را تقسیم بر 8 کردی خب هر 1 میکرو ثانیه مقداره تایمر یکی اضافه میشه هالا اگه تو مد CTC باشیم و با هر بار تطابق تایمر با OC خروجی عوض بشه و مقدار OC برای مثال 150 باشه پس پریود پالس خروجی 150*2=300 میکرو ثانیه است :job:
    فرزندم در راه است

    دیدگاه


      #3
      پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

      سلام
      اول بفرمایید که می خواید فرکانستون دقیق باشه (دقت در چه حد ، توضیح بدبد) و یا در چه محدوده ای می خواید کار کنید ؟؟

      دیدگاه


        #4
        پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

        ضمن تشکر از دوستان که لطف کردن جواب دادن...
        راستش منتازه دارم با تایمرا اشنا می شم
        فرکانس خروجی میکرو زیاد نمی خوام دقیق باشه (نمی دونم منظورتون تو محاسبه فرکانس که دقیق بدست نمی یاد؟)
        ببینید محاسبه من درسته؟
        اگه بخوام با مد نرمال تایمر یه فرکانس 1KHz تو خروجی میکرو داشته باشم: (کلاک تایمر 1MHz )

        1MHz*1ms=1000 که هگزش میشه 3E8
        TCNTn: FFFF-3E8 که میشه FC17
        اگه اشتباه درستشو بهم بگید؟
        ذكات علم ياد دادنه ....

        دیدگاه


          #5
          پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

          کسی نیست جوابه سوالامو بده
          بد جوری گیر کردم
          خواهشا جواب بدین :cry2:
          ذكات علم ياد دادنه ....

          دیدگاه


            #6
            پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

            این فرمول کلی:
            مقداری که میخوای=پیش مقسم*1micro saniye*(مقدار اولیه - FF)

            دیدگاه


              #7
              پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

              نوشته اصلی توسط محمد مینائیان
              این فرمول کلی:
              مقداری که میخوای=پیش مقسم*1micro saniye*(مقدار اولیه - FF)

              از اینکه جوابمو دادین ممنونم
              دوست عزیز میشه یه مثال بزنید تا من کاملا متوجه بشم (اخه یکم گیراییم کمه )
              مثلا اگه بخوام 1KHz رو با تایمر بسازم تو مد نرمل چیه کار باید کرد؟
              ممنون میشم جواب بدین
              ذكات علم ياد دادنه ....

              دیدگاه


                #8
                پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                نوشته اصلی توسط majid.4206
                کسی نیست جوابه سوالامو بده
                بد جوری گیر کردم
                خواهشا جواب بدین :cry2:
                سلام
                با استفاده از تایمر 1 میکرو می تونید این کار رو انجام بدید . به اینصورت که تایمر 1 رو در این حالت پیکره بندی کنید :
                - حالت مقایسه ای با رجیستر OCR1A
                - تغییر حالت خروجی در هنگام رسیدن به مقدار مقایسه
                بعد از اینکه این کار رو انجام دادید به ازای هر مقداری که به رجیستر OCR1 (مهم نیست رجیستر a یاb ) دادین یه فرکانس در خروجی ظاهر میشه . برای راحتتر شدن کار شما برای بدست آوردن فرکانسی مثل F_out باید از رابطه ی زیر مقدار رجیستر OCR1 را تعیین کنید:



                که در رابطه ی بالا :
                F osc : فرکانس اسیلاتور AVR بر حسب هرتز
                prescaler : مقدار prescaler تایمر
                F out : مقدار فرکانس مورد نظر خروجی بر حسب هرتز است .

                به این ترتیب مقدار OCR1 بدست میاد که باید داخل رجیستر قرار بگیره .
                مشکل این روش اینه که بعضی از فرکانس ها رو ( به دلیل جور در نیامدن در رابطه ) به صورت دقیق تولید نمی که(عددی که برای OCR1 بدست میاد اعشاری می شه ) و مثلا فرکانس 49 هرتز رو 47 یا 59 هرتز نشون می ده .
                این هم یه نمونه برنامه که فرکانس 50 هرتز دقیق تولید می کنه و برای codevision نوشتم ( برنامه اش خیلی ساده هست و دقیق ):
                http://www.4shared.com/file/88974601/d837810c/AVR_50_Hertz.html
                سوالی داشتین در خدمتم .



                دیدگاه


                  #9
                  پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                  ببخشید منظور از prescaler یعنی همون N تو رابطه پایینه (این روش درسته :NO

                  OCRN=Fclk/2*N*Focn
                  N اینجا تقسیماته کلاکه مثلا اگه کلاک میکرو 8MHz وکلاک تایمر هم 1MHz
                  باشه N میشه 8=1/8
                  ایا محاسباتم درسته؟

                  در ضمن در مورد اون سوال پروتئو س نظرتون چیه؟
                  و همچنین فیوز بیتها؟
                  ذكات علم ياد دادنه ....

                  دیدگاه


                    #10
                    پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                    نوشته اصلی توسط majid.4206
                    ببخشید منظور از prescaler یعنی همون N تو رابطه پایینه (این روش درسته :NO

                    OCRN=Fclk/2*N*Focn
                    N اینجا تقسیماته کلاکه مثلا اگه کلاک میکرو 8MHz وکلاک تایمر هم 1MHz
                    باشه N میشه 8=1/8
                    ایا محاسباتم درسته؟

                    در ضمن در مورد اون سوال پروتئو س نظرتون چیه؟
                    و همچنین فیوز بیتها؟
                    بله درسته
                    اون فرکانس متری هم که در پروتئوس هست به نام COUNTER TIMER دقیق دقیقه .

                    دیدگاه


                      #11
                      پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                      اعصابم داره خورد میشه :angry:
                      برنامه ای که شما زحمت کشیدید فرستادید به خوبی جواب میده ولی همینکه من خودم دوباره می خوام همون فرکانسو تولیدش کنم تو پروتئوس
                      12Hz رو نشون میده مشکل از کجاست؟
                      میشه شما هم یه تستی بکنید؟

                      http://www.4shared.com/file/93643475/7613a364/50Hz.html


                      ذكات علم ياد دادنه ....

                      دیدگاه


                        #12
                        پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                        نوشته اصلی توسط majid.4206
                        اعصابم داره خورد میشه :angry:
                        برنامه ای که شما زحمت کشیدید فرستادید به خوبی جواب میده ولی همینکه من خودم دوباره می خوام همون فرکانسو تولیدش کنم تو پروتئوس
                        12Hz رو نشون میده مشکل از کجاست؟
                        میشه شما هم یه تستی بکنید؟

                        http://www.4shared.com/file/93643475/7613a364/50Hz.html


                        باید به فرکانس میکروتون دقت کنید . برنامتون مشکلی نداره ولی توی اون فایل پروتئوس باید فرکانس میکروتون رو به مقداری که توی فرمول گذاشتین ، تغییر بدین .

                        دیدگاه


                          #13
                          پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                          خیلی اقایی دمت گرم :applause:
                          تا صبح هم اگه روش فکر می کردم نمی فهمیدم

                          بالاخره جواب داد

                          یه سوالم بی جواب موند اگه اینم جواب بدین یه دنیا ممنونم
                          میشه بگید اگه بخوایم یه کریستال مثلا 16MHz رو به میکرو وصلش کنیم فیوز بتاشو چیکار باید کرد ؟
                          یا 8 ویا هر فرکانسه دیگه ایی؟
                          ایا اون کاری که تو سوال اولم بود درسته؟
                          ذكات علم ياد دادنه ....

                          دیدگاه


                            #14
                            پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                            حقیقت من برای تنظیم فیوز بیت ها سراغ bascom AVR میرم ، چون اون به صورت گرافیکی فیوز بیت ها رو تنظیم می کنه وو خیلی راحته و نیاز به حفظ کردن این فیوز ها رو نداره !

                            دیدگاه


                              #15
                              پاسخ : روش محاسبه تایمر و چنتا سوال دیگه؟

                              نوشته اصلی توسط majid.4206

                              از اینکه جوابمو دادین ممنونم
                              دوست عزیز میشه یه مثال بزنید تا من کاملا متوجه بشم (اخه یکم گیراییم کمه )
                              مثلا اگه بخوام 1KHz رو با تایمر بسازم تو مد نرمل چیه کار باید کرد؟
                              ممنون میشم جواب بدین

                              اگه از تایمر 16bit استفاده میکنید باید بجای FF مقدار FFFF را بگذارید
                              1micro saniye هم 1راتقسیم بر فرکانس میکرو میکنی تا زمان کاری میکرو بدست بیاد
                              مقدار زمانی ککه از تایمر میخوای را در طرف راست مساوی میگذاری
                              بعد به صورت آزمون و خطا مقداری را به (مقدار اولیه) و (پیش مقسم) میگذاری
                              یا میتونی از برنامه fast AVR استفاده کنی انجا بهتر و اسن تر میتوانی زمان های مختلفی را بدست بیاوری و اگر مشکلی توی مقدارات باشه بهت میگه
                              موفق باشی

                              دیدگاه

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