اطلاعیه

Collapse
No announcement yet.

کار با تایمر به زبان C

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

    کار با تایمر به زبان C

    سلام دوستان من میخوام با استفاده از تایمر2 مگا32 یک زمان تاخیر تولید کنم.من با کدویژن کار میکنم. بیشتر از دوساعت در سایت جستجو کردم ولی هنوزم مشکل دارم چون مطالب متمرکز نیست و بیشتر هم به زبان بیسیک گفته شده :cry2:... راستش دقت خیلی زیاد برام مهم نیست پس نمیخوام از RTC استفاده کنم. زمانی هم که مورد نظرمه دو ثانیه هست. من از دو تایمر 0 و 1 هم دارم استفاده میکنم.
    یک پیشنهاد جدی هم دارم: می خواستم اگر ممکنه این تاپیک رو اختصاص بدین به آموزش این مطلب که افراد دیگه هم بتونن از این مبحث بهرهمند بشن. اگر این کارو بکنید عالیه هم من جواب سوالامو بین آموزشهای شما پیدا میکنم هم بقیه...کلا از سطح مبتدی بگید . محورهای پیشنهادی من مباحث زیر هست:
    نحوه محاسبه زمان سریز تایمرهای 8 بیتی و 16 بیتی...
    محاسبه زمان دلخواه با توجه به عوامل دخیل در اون... مثل کلاک و prescale
    نحوه نگه داشتن تایمر در بین برنامه و فعال سازی مجدد اون
    و چیزای دیگری که به ذهن شما میرسه...
    در پایان به عنوان مثال کاربردی هم ، با این زمان یک led خاموش روشن کنیم :nerd:

    #2
    پاسخ : کار با تایمر به زبان C

    سلام
    دوست عزیز تایمر 8 بیتی مقدار تایمر به 255 برسد سرریز میکند و وارد زیر برنامه وقفه میشود و تایمر 16 بیتی وقتی مقدار تایمر به 65536 برسد تایمر سرریز میکند و وارد زیر برنامه وقفه میشود.شما باید در اول برنامه تایمر ها و زیر برنامه وقفه رو تعریف کنید.

    دیدگاه


      #3
      پاسخ : کار با تایمر به زبان C

      ممنونم از شما ولی برای این که بحث سریعتر پیش بره فایل ضمیمه شده رو که از یک تاپیک دیگه گرفته شده میزارم این مقاله کار آقای وحید نصیری هستش. شاید اگر برنامه های این فایل به زبان c توسط یکی از دوستان ترجمه بشه بهتر و سریعتر به نتیجه برسیم.
      http://www.4shared.com/file/76560713/623fac3b/learning_timers.html

      دیدگاه


        #4
        پاسخ : کار با تایمر به زبان C

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

        برای ایجاد هر تایمر اگه 8 بیتی باشه 256 و اگر 16 بیتی باشه 65536 میشماره و سرریز میشه

        حالا این عدد رو تقسیم بر فرکانس تایمر (تقیسمی از فرکانس میکرو) بکنی تعداد دفعاتی که میکرو در یک ثانیه سر ریز میشه بدست میاد.

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

        مقدار زمان دلخواه هم برابر است با زمان سرریز یک بار تایمر * مقدار متغیر

        برای متوقف کردن و شروع مجدد تایمر نیز باید با رجیستر TCCR کار کنی که شرح بیت هاش یادم نیست.

        بازم میگم برای توضیحات دقیق به کتاب ره افروز مراجعه کن

        دیدگاه

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