اطلاعیه

Collapse
No announcement yet.

تایمرavr

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

    #16
    پاسخ : تایمرavr

    سلام .
    شما اگه از Codewizard نرم افزار codevision استفاده کنید ، دیگه نیازی به نوشتن برنامه و کار با رجیسترها و اعداد درونی آن نیستید .
    این کدها با توجه به مقدار کریستال و میزان مقسم فرکانس (prescaler) و همین طور نوع تایمر (تایمر 0 یا 1 یا 2 ) تغییر می کند . اگر از Codewizard استفاده کنی و زبانه های تایمر رو ببینی ، متوجه منظور من میشی .
    موفق باشی .
    یه سری هم به وبلاگ زیر بزن .
    www.kamangari.blogfa.com
    http://www.kamangari.blogfa.com
    ارسال برترین جزوات کنکور ارشد برق

    دیدگاه


      #17
      پاسخ : تایمرavr

      سلام ............. یه دو، سه روزی فرصت نشد که به سایت سر بزنم (sorry) . :redface:

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

      از مهمترین رجیسترهایی که در واحد تایمر و برای تنظیمات اون وجود داره میشه به TCNT وTCCR و OCR اشاره کرد . توضیح مفصل این رجیسترها زمان میبره اما به اختصار به هر کدومشون اشاره می کنیم ...

      رجیستر TCNT : رجیستریه که مقدار شمارش شده رو نشون میده . در واقع اگه بخوایم بفهمیم که تایمر تا کجا شمرده و کی یک بیت سرریز تولید میکنه ، می تونیم به این رجیستر مراجعه کنیم .

      رجیستر OCR :این رجیستر اساس تولید پالس های PWM در دو مد سریع و تصحیح فاز رو شامل میشه ، یعنی برای تنظیم عرض پالس دلخواه خروجیمون در PWM (روی پایه های OC) می تونیم از از تنظیمات این رجیستر استفاده کنیم . هر مقایسه ای که در واحد تایمر داشته باشیم می تونیم با استفاده از تنظیمات این رجیستر و مقایسه ی اون با TCNT انجام بدیم .

      رجیستر TCCR : این رجیستر یه رجیستر کنترلیه که برای تنظیمات تایمر به کار میره . سه بیت اولش CS00 تا CS02 وظیفه ی تنظیمات پایه ای تایمر اعم از راه اندازی تایمر (فعال سازی) ، تنظیمات prescaler ، تنظیم کلاک داخلی یا خارجی برای واحد تایمر/کانتر رو بر عهده دارند .

      دو بیت 3 و 6 هم تنظیمات تایمر برای کار در مدهای بخصوص تایمر رو بر عهده دارند (اعم از Fast PWM ، Phase correct PWM ، Capture و CTC )

      بیت های 4 و 5 و 7 هم کارایی مخصوص خودشونو دارن که اگه خواستید راجع به اونها هم صحبت می کنیم)

      حالا وقتی شما می خواید با واحد تایمر کار کنید ، هم می تونید مطابق اونچه که در دیتاشیت خانواده ی میکروتون اومده تنظیمات را به صورت مستقیم انجام بدید ، یعنی به عبارتی برید سراغ دستورات رجیستری و هم می تونید از تنظیمات منوی CodeWizard استفاده کنید . برای این منظور هم در منوی تایمر می تونید تنظیماتتون رو به راحتی انجام بدید و این دستورات رو به صورت کاملا selection شده پیاده سازی کنید .

      بعد از تنظیمات و اعمال تنظیمات و ایجاد صفحه ی پروژه ای که با اون مشخصات ثبت شده ، شما می تونید در قسمتی که مربوط به تایمره اطلاعات و تغییرات اعمال شدتون رو مشاهده کنید . این اطلاعات به صورت درج مقادیر هگز (Hex Codes) برای سه رجیستر اشاره شده نمایش داده شدند .

      باز هم اگر سوالی داشتید مطرح کنید . موفق باشید .
      دوستان! مدتی کمتر به سایت میام ..

      دیدگاه


        #18
        پاسخ : تایمرavr

        سلام حسام جان ممنون از راهنمایی کاملت
        با توجه به توضیحاتی که در بالا دادی خودمم رفتم دنبال توضیحات رجیسترها ، رجیستر TCCR مریوط به تنظیمات و پیکر بندی تایمر ه که همون طور که خودت در بالا گفتی به صورت زیر پیکر بندی میشه

        TCCRO=0B00000010 که سه بیت مربوط به تعیین PRESCALE و سه بیت بعدی مال تعیین مد کاری تایمر

        حالا دو خط واسه چی نوشته شده ؟
        while(!TIFR&0x01)
        TIFR=TIFR|0B00000001

        راستی من تو این برنامه دستوری نمیبینم که بخواد وقفه سراسری رو فعال کنه ؟؟ یا من اشتب میکنم ؟؟/
        کمتر به سایت میام .....

        دیدگاه

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