1. خانه
  2. آموزش
  3. جلسه بیستم _ نحوه راه اندازی واحد کانتر ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش اول)

جلسه بیستم _ نحوه راه اندازی واحد کانتر ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش اول)

دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد کانتر(بخش اول)

در ادامه آموزش STM32 با استفاده از توابع HAL در این جلسه قصد داریم تا به معرفی کانتر بپردازیم و نحوه راه اندازی و تنظیمات مربوط به کانتر را در محیط STM32CubeMX فرا گیریم. همانطور که در جلسات معرفی تایمر هم گفته شد تایمر ها هم در واقع نوعی شمارنده هستند که پالس های منظم یک اسیلاتور را شمارش می کنند. در راه اندازی کانترها بجای شمارش پالس های اسیلاتور، پالس ها را از یک منبع خارجی می گیرد.

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

Timers

با انتخاب تایمر مورد نظر اطلاعات مربوط به آن نمایش داده می شود و با توجه به اینکه قبلا تنظیماتی روی تایمر انجام نداده ایم تمامی گزینه های آن Disable می باشد.

TIM2_Conf

در ابتدا در بخش Slave Mode حالت External Clock Mode1 را انتخاب می کنیم و در قسمت Trigger Source گزینه Tl1FP1 را تایید می نماییم. با این کار منبع کلاک را بصورت خروجی مشخص می نماییم و تایمر را در حالت کانتر پیکربندی می کنیم و پایه مورد نظر برای تامین کلاک را نیز مشخص می نماییم.

TIM2_Set_Mode

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

TIM2_CH1

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

TIM2_Conf

در بخش Parameter Settings بخش های مختلفی وجود دارد که به معرفی برخی از آنها می پردازیم و در صورت نیاز پروژه، برخی از آنها را تنظیم می نماییم.

در بخش Counter Settings عبارت Prescaler به چشم می خورد که به عنوان پیش تقسیم کننده از آن استفاده می شود و با تغییر آن می توانید فرکانس پالس های ورودی را به عددی خاص تقسیم نمایید که این مورد معمولا در کانترها استفاده نمی شود.همچنین در بخش Counter Mode می توانید نوع شمارش را افزایشی یا کاهشی و حالات دیگر انتخاب نمایید.
قسمت Counter Period برای تنظیم ماکزیمم مقدار شمارش از آن استفاده می شود که با رسیدن به عدد مورد نظر شمارنده کانتر می تواند صفر شود یا اینکه یک وقفه ایجاد شود. در این پروژه قصد داریم تا مقدار این گزینه را ۹۹ در نظر بگیریم تا با دریافت ۱۰۰ پالس یک وقفه تولید شود. با توجه به اینکه این رجیستر ۱۶ بیتی می باشد حداکثر عدد قابل شمارش در آن ۶۵۵۳۵ می باشد.

Counter_Period

در ادامه تنظیمات و در بخش Trigger می توانید نوع لبه حساس برای شمارش را انتخاب نمایید که در این برنامه ما حالت Rising Edge انتخاب می کنیم و در قسمت Trigger Filter نیز می توانید با توجه به ۴ بیتی بودن آن اعدادی بین ۰ تا ۱۵ را قرار دهیم که با تغییر مقدار آن حساسیت کانتر نیز نسبت به نوسانات سیگنال ورودی تغییر می کند.

Trigger

در این برنامه با توجه به اینکه حساسیت را ما در حالت لبه بالا رونده انتخاب نمودیم پس باید پایه کانتر را Pullup نماییم که برای اینکار در بخش Configuration در بخش GPIO Settings پایه مورد نظر (PA0) را انتخاب می کنیم و در قسمت GPIO Pull-up/Pull-down گزینه Pull-up را انتخاب می کنیم.

Pin_Pullup

در ادامه با توجه به اینکه قصد داریم تا اینتراتپ کانتر را نیز فعال کنیم از بخش NVIC Settings اینتراپت مربوط به کانتر را فعال می کنیم.

Enable_Interrupt

با اتمام تنظیمات برای تولید کد برنامه گزینه Generate Code را انتخاب می کنیم. در جلسه بعد به معرفی دستورات مورد استفاده در پروژه می پردازیم و با دستورات مربوط به کانتر بیشتر آشنا می شویم.

زندگی تون پر از نور و مسیرتون سبز

محمد هادی دشتی

لینک های مرتبط با آموزش:
جلسه اول_معرفی هسته آرم و میکروکنترلرهای ۳۲ بیتی شرکت ST

جلسه دوم_معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام

جلسه سوم _ آموزش نحوه دانلود آخرین نسخه از نرم افزار STM32CubeIDE

جلسه چهارم _نصب نرم افزار STM32CubeIDE و نصب کتابخانه

جلسه پنجم _ نحوه انجام تنظیمات در نرم افزار STM32CubeMX برای تولید کد برنامه چشمک زن

جلسه ششم _ برنامه نویسی یک چشمک زن ساده با استفاده از نرم افزار STM32CubeIDE

جلسه هفتم _ نحوه انجام تنظیمات پایه به صورت ورودی در نرم افزار STM32CubeMX و برنامه نویسی یک کلید

جلسه هشتم _ معرفی نرم افزار STM32 Flash Loader Demonstrator (پروگرامر سریال) 

جلسه نهم _ نحوه راه اندازی ال سی دی کاراکتری (قسمت اول)

جلسه دهم _ نحوه راه اندازی ال سی دی کاراکتری _ افزودن کتابخانه (قسمت دوم)

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

جلسه دوازدهم _ دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش اول)

جلسه سیزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش دوم)

جلسه چهاردهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش اول)

جلسه پانزدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش دوم)

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

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

جلسه هجدهم_دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش اول)

جلسه نوزدهم _ نحوه راه اندازی سون سگمنت و برنامه آن در محیط STM32CubeIDE (بخش دوم)

جلسه بیست و یکم _ نحوه راه اندازی کانتر و برنامه آن در محیط STM32CubeIDE (بخش دوم)

جلسه بیست و دوم _ نحوه راه اندازی واحد PWM (بخش اول) 

جلسه بیست و سوم _ نحوه راه اندازی واحد PWM (بخش دوم)

جلسه بیست و چهارم _ معرفی واحد UART و سطوح منطقی ولتاژ و انواع مبدل ها(بخش اول)

جلسه بیست پنجم _ نحوه راه اندازی واحد UART ونحوه انجام تنظیمات در محیط STM32CubeMX(بخش دوم)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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