قسمت هفدهم : تایمر 2

قسمت هفدهم : تایمر 2

قسمت هفدهم : تایمر 2
قسمت هفدهم : تایمر 2

سیسوگ در قسمت شانزدهم آموزش میکروکنترلر STM8 انواع تایمر‌های STM8 را به شما معرفی کرد. در این قسمت از مجموعه مقالات آموزش میکروکنترلر STM8  قصد دارد تایمر 2 را آموزش دهد. با سیسوگ همراه باشید.

 

تایمر 2 :

تایمر 2 اساسی‌ترین ویژگی هر تایمر است و هم‌چنین نیازهای ضروری هر سیستم در آن جاسازی شده است. این حالت را می‌توان با وقفه و یا بدون وقفه استفاده کرد. ما ابتدا این را بدون وقفه و سپس با وقفه مورد بررسی قرار می‌دهیم.

در تایمر 2، می‌توانیم با استفاده از تأخیر، حلقه و روش‌های دیگر زمان دقیق را بدست آوریم. تایمر 2 با استفاده از سخت‌افزار تایمر و مستقل از بقیه قسمت‌ها کار می کند. این تایمر کاربردهای بسیاری دارد. به عنوان مثال، با استفاده از این تایمر می‌توانیم از تأخیر نرم‌افزار جلوگیری کنیم، شکاف‌های زمانی در سیستم بلادرنگ (RTOS) تولید کرد و غیره.

تایمر 2 در STM8

تمام تایمرهای STM8 مشابه هستند و تنها چند تفاوت دارند. به عنوان مثال، تایمر 1 یک شمارنده تکرار است. این مانند شمارنده‌ای به دنبال شمارنده دیگر است. تایمرهای دیگر این بخش را ندارند. تمامی تایمرها شمارنده رو به بالا هستند، در حالیکه تایمرهای پیشرفته می‌توانند شمارنده معکوس نیز باشند.

تئوری اصلی تایمر 2 به این صورت است که شما یک کلاک داخلی دارید که آن را بر حسب نیاز خود تقسیم بندی می‌کنید. بنابراین شما آن را تنظیم می‌کنید و از کلاک جدید برای شمارنده استفاده می‌کنید. شمارنده از 0 تا 100 شروع به شمارش می‌کند و بعد از اینکه به 100 رسید مجدداً از 0 شروع به شمارش می‌کند. رابطه زیر زمان تایمر را نشان می‌دهد:

فرمول تایمر 2

فرمول بالا نشان دهنده مدت زمان سپری شده قبل از وقوع سرریز تایمر است پس از آن تایمر شمارش را از اول شروع می کند.

در این مثال، کلاک اصلی روی 2 مگاهرتز تنظیم شده است.  تایمر 2 پس از تقریبا 2 ثانیه دوباره بارگذاری می‌شود. ما این کلاک را به 2048 قسمت تقسیم می‌کنیم و که در این حالت شمارنده پس از شماره 1952 مجدداً بارگیری می‌شود. توجه داشته باشید که تایمر 2 شمارنده تکرار ندارد و روی 1 تنظیم می شود.

 

اتصالات سخت افزاری

 

تایمر 2 در STM8

 

نمونه کد تایمر 2

در این مثال، LED بدون تأخیر زمانی نرم افزار چشمک می زند. تایمر 2 در اینجا برای ایجاد تأخیر زمانی استفاده می‌شود.

 

 

توضیحات

در ابتدا CPU و کلاک داخلی هر دو روی 2 مگاهرتز تنظیم می شوند.

 

همانطور که قبلاً توضیح داده شد، برای اینکه تایمر هر 2 ثانیه یکبار مجدداً بارگیری شود باید شمارنده را به 2048 قسمت تقسیم بندی کنیم و شمارنده روی 1952 بارگیری شود. این تنظیمات کد در زیر نشان داده شده است:

 

هدف ما این است که LED برای 1 ثانیه روشن و برای 1 ثانیه خاموش باشد. برای ایجاد این زمان 2 ثانیه ای شمارنده تا شماره 1952 پیش می رود بنابرین وقتی شمارنده تا 976 پیش برود مدت زمان 1 ثانیه سپری می شود. بنابراین در حلقه اصلی مقدار شمارنده تایمر 2 را چک می کنیم. وقتی شمارنده از 0 تا 976 را می شمارد LED روشن و وقتی از 977 تا 1952 را می شمارد LED خاموش می شود. توجه داشته باشید که پایه مثبت LED به VDD متصل است و وقتی PD3 مقدار کمی دارد روشن می شود.

 

 

سیسوگ در قسمت های بعدی تایمرهای دیگر STM8 را مورد بررسی قرار می دهیم. در قسمت هجدهم تایمر 4 را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

منبع

لینک‌های دانلود

مطالب مرتبط

 

 

حمایت از electronic girl

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

electronic girl
electronic girl

دوستدار الکترونیک

دیدگاه ها

3 دیدگاه

  • شهاب
    ۳۰ فروردین ۱۴۰۱

    سلام. می تونید یه نمونه کد برای overflow تایمر 2 بگید؟ فقط میخوام بدونم تابعش چجوری نوشته میشه.

    • Zeus ‌
      Zeus ‌
      ۳۰ فروردین ۱۴۰۱

      سلام
      منظورتون از نمونه کد، دقیقا کدام قسمتش هست
      کانفیگش یا اینتراپتش ؟!

  • saeed
    ۱۱ آبان ۱۳۹۹

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 9 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش

درآمد زایی به سبک پینوکیو

ما مهندسین, بخصوص مهندسین برق و الکترونیک … علاقه خاصی به طراحی و ساختن داریم علاقه زیادی به تکنولوژی , بخصوص از...

Sisoog Os Sisoog Os
  • 3 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک