02166766927 -02166703652
info@atrinelec.com تهران پاساژ امجد طبقه1 واحد 16
دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد کانتر(بخش اول)

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

2018-12-09 19:44:47

جلسه هجدهم _ نحوه راه اندازی واحد کانتر ونحوه انجام تنظیمات در محیط STM32CubeMX

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

همانطور که در جلسات معرفی تایمر (جلسه اول) (جلسه دوم) هم گفته شد تایمر ها هم در واقع نوعی شمارنده هستند که پالس های منظم یک اسیلاتور را شمارش می کنند.

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

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

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

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

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

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

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

در بخش Counter Settings عبارت Prescaler به چشم می خورد که به عنوان پیش تقسیم کننده از آن استفاده می شود و با تغییر آن می توانید فرکانس پالس های ورودی را به عددی خاص تقسیم نمایید که این مورد معمولا در کانترها استفاده نمی شود.همچنین در بخش Counter Mode می توانید نوع شمارش را افزایشی یا کاهشی و حالات دیگر انتخاب نمایید.

قسمت Counter Period برای تنظیم ماکزیمم مقدار شمارش از آن استفاده می شود که با رسیدن به عدد مورد نظر شمارنده کانتر می تواند صفر شود یا اینکه یک وقفه ایجاد شود.  در این پروژه قصد داریم تا مقدار این گزینه را 99 در نظر بگیریم تا با دریافت 100 پالس یک وقفه تولید شود. با توجه به اینکه این رجیستر 16 بیتی می باشد حداکثر عدد قابل شمارش در آن 65535  می باشد.

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

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

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

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

                                                                                                                                                                    دلتون شاد و لبتون پرخنده

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

دیگر آموزش ها مرتبط با STM32:

برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST  ) کلیک کنید.

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

برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX   ) کلیک کنید.

برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX  ) کلیک کنید.

برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.

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

برای مشاهده آموزش جلسه هفتم(معرفی نرم افزار STM32 Flash Loader Demonstrator و نحوه دانلود برنامه و پروگرام کردن میکرو) کلیک کنید.

برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.

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

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

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

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

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

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

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

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

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

به سبد خرید اضافه شد.
سبد خرید
Item removed. بازگرداندن