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

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

2018-12-27 18:09:44

جلسه سی و هشتم _ بررسی توابع و دستورات مربوط به  واحد Watchdog در نرم افزار Keil

در جلسه قبل به معرفی Watchdog و نحوه استفاده و راه اندازی آن پرداختیم و پروژه ای را تولید نمودیم در این جلسه قصد داریم تا به بررسی توابع و نحوه استفاده از آن ها بپردازیم. پس در ابتدا پروژه را اجرا می کنیم و به سراغ فایل main.h می رویم:

استراکچر مربوط به تنظیمات واحد Watchdog می باشد.

 

معرفی تابع مربوط به تنظیمات واحد Watchdog

 

تابع تنظیمات واحد واچ داگ می باشد که پارامترهای تنظیم شده در نرم افزار STM32CubeMX در این تابع قرار می گیرند.

hiwdg.Init.Prescaler : مقدار پیش تقسیم کننده فرکانس مربوط به این واحد را مشخص می کند.

hiwdg.Init.Reload : مقدار شمارش را در این قسمت مشخص می کنیم.

حال به سراغ توابع کاربردی این واحد می رویم که برای مشاهده آنها باید فایل stm32f1xx_hal_iwdg.c را اجرا نمود که مسیر آن از قسمت Project درون پوشه Drivers/STM32F1xx_HAL_Driver می باشد.

(HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg

وظیفه این تابع پیکربندی واحد IWDG و شروع به کار آن می باشد که یک آرگومان در ورودی دریافت می کند که این آرگومان استراکچر مربوط به تنظیمات واحد IWDG می باشد.

 

(HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg

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

 قبل از توضیح برنامه اضافه شده به برنامه لازم است تا نحوه محاسبه زمان برای ریست شدن میکرو را بررسی نماییم. با توجه به اینکه فرکانس منبع کلاک واحد 40KHz می باشد دو پارامتر برای تغییر زمان وجود دارد اولین پارامتر مقدار پیش تقسیم کننده فرکانسی این واحد می باشد که اعداد 4 و 8 و 16 و 32 و 64 و 128 و 256 می باشد و پارامتر دوم مقدار شمارنده این واحد می باشد که ماکزیمم می تواند 4095 باشد پس در ابتدا باید زمان مورد نظر برای ریست شدن میکرو را در نظر بگیریم پس از آن با تغییر این دو پارامتر زمان مورد نظر را بدست آورد . در این جلسه قصد داریم تا برنامه ای بنویسیم تا در صورتیکه مقدار شمارنده مربوط به واحد واچ داگ پس از 1 ثانیه مجدد مقدار دهی نشد میکرو را ریست نماید. پس مقدار پیش تقسیم کننده را 32 در نظر می گیریم با این کار فرکانس ورودی واحد برابر 1.25KHz می شود و برای بدست آوردن زمان یک ثانیه باید مقدار 1250 پالس شمارش شود و با توجه به اینکه شمارش تا مقدار صفر ادامه پیدا می کند مقدار اولیه کانتر مربوط به واحد را 1249 در نظر می گیریم. حال به سراغ توضیح برنامه می رویم.

در ابتدا با استفاده از دستور HAL_IWDG_Init واحد واچ داگ را فعال و شمارش را آغاز می کنیم و پس از آن به یک حلقه for می رسیم که وضعیت یک LED را که به پایه میکرو متصل نموده ایم با فاصله زمانی 100 میلی ثانیه یکبار تغیر می دهد و پس از هر بار تاخیر 100 میلی ثانیه با استفاده از دستور HAL_IWDG_Refresh مقدار شمارنده واحد واچ داگ را مجدد مقدار دهی می کند تا از ریست شدن میکرو جلوگیری شود در این حلقه LED با سرعت بالا روشن و خاموش می شود و پس از آن به حلقه while می رسیم درون این حلقه نیز یک حلقه for وجود دارد که وضعیت یک LED را با فاصله زمانی 500 میلی ثانیه یکبار تغیر می دهد و پس از هر بار تاخیر 500 میلی ثانیه با استفاده از دستور HAL_IWDG_Refresh مقدار شمارنده واحد واچ داگ را مجدد مقدار دهی می کند تا از ریست شدن میکرو جلوگیری شود در این حلقه نیز LED با سرعت کمتری نسبت که حلقه قبل از while روشن و خاموش می شود و پس از خروج از حلقه به یک تاخیر 2 ثانیه ای می رسیم و با توجه به اینکه این تاخیر بیشتر از زمان تنظیم شده برای ریست شدن میکرو است پس از گذشت یک ثانیه و عدم مقدار دهی مجدد شمارنده مربوط به واچ داگ، مقدار شمارنده صفر می شود و میکرو ریست می شود. در نتیجه برنامه از ابتدا شروع به کار می کند و LED را با سرعت بالا روشن و خاموش می کند و مجدد به حلقه while می رسد و این روند مدام ادامه می یابد.

در انتها می توانید شماتیک مربوط به این جلسه و برنامه (keil , STM32CubeMX)  آنرا دانلود نمایید.

 IWDG_Sample_Code

 IWDG_Schematic

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

برای مشاهده آموزش جلسه سی و یکم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی System Tick Timer) کلیک کنید.

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

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

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

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

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

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

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