تایمر 2 در STM8 | قسمت هفدهم آموزش STM8

blog
۱۳۹۷-۰۸-۰۲
4 دقیقه

سیسوگ در قسمت شانزدهم آموزش میکروکنترلر 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 را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

منبع

مطالب مرتبط

 

اطلاعات
7
0
لینک و اشتراک
profile

electronic girl

متخصص الکترونیک

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

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
سپهر راد گفت :
۱۴۰۳-۰۴-۳۰ ۱۳:۰۱

سلام، قسمت بعدی که در مورد تایمر ۴ هست باز نمیشه و هشدار یافت نشد میده.
لطف کنید درست کنید.

profile
Shadow گفت :
۱۴۰۳-۰۴-۳۱ ۱۰:۵۹

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

profile
سپهر راد گفت :
۱۴۰۳-۰۴-۳۱ ۱۹:۳۷

تشکر از پیگیری سریعتون.

profile
شهاب گفت :
۱۴۰۱-۰۱-۳۰ ۰۰:۲۷

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

profile
Zeus ‌ گفت :
۱۴۰۱-۰۱-۳۰ ۰۹:۲۱

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

profile
علیرضا گفت :
۱۴۰۰-۱۲-۰۳ ۱۷:۱۳

با سلام
من تایمر دو رو با وقفه راه اندازی کردم
به عنوان مثال میخواستم که هر 200 میلی ثانیه یک بار بره توی تابع وقفه و بعد بیاد بیرون
ولی با هر کانفیگی که تنظیم کردم این کار نکرد بعد اسکوپ روی روی پایه میکرو گذاشتم دیدم فرکانس 33.9 کیلو هرتز هست
بازم تنظیمات میکرو تغییر دادم فرغی نکرد
void TIM2Config(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_32768, 15625);
TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
TIM2_Cmd(ENABLE);
}
این تکه کد برای تنظیمات تایمر هست
و این هم کدی هست که توی فایل اینتراپت ها نوشتم
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.*/
GPIO_WriteReverse(GPIOD,GPIO_PIN_4);

}

میکروی استفاده شده : stm8s003f3

با تشکر از اموزش های خوبتون

profile
saeed گفت :
۱۳۹۹-۰۸-۱۱ ۱۷:۲۶

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

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله