تایمر نگهبان مستقل برای STM32 | قسمت 28 آموزش STM32 با توابع LL

blog
۱۴۰۱-۰۴-۱۱
2 دقیقه

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

با سیسوگ همراه باشید.

واحد IWDG شامل یک شمارنده نزولی 12 بیتی است که با کلاک داخلی کم‌سرعت میکرو (LSI) و مستقل از کلاک سیستم کار می‌کند. همچنین یک تقسیم‌کننده کلاک در این واحد وجود دارد که می‌توان به‌وسیله آن به نرخ کلاک موردنیاز دست پیدا کرد.

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

در ادامه تایمر نگهبان مستقل IWDG را در یک پروژه ساده راه‌اندازی می‌کنیم.

 

ایجاد پروژه

مثل بخش‌های قبلی قسمت دیباگ و کلاک و USART1 را تنظیم می‌کنیم. بعدازآن باید پین PA5 را روی ورودی و در حالت pull-up تنظیم کنیم. سپس IWDG را فعال می‌کنیم و تقسیم‌کننده کلاک آن را روی یک عدد دلخواه (مثلاً 16) تنظیم و مقدار شمارنده آن را 4095 می‌کنیم.

 

اکنون تنظیمات درایورها را نیز مانند قبل انجام می‌دهیم و وارد بخش کدنویسی می‌شویم.

 

نوشتن کد پروژه IWDG

برای این پروژه نیز اعمال مربوط به ریدایرکت را انجام می‌دهیم و از همان کد استفاده می‌کنیم. سپس تابعی برای نمایش منبع ریست میکرو، به‌صورت زیر می‌نویسیم:

در تابع ()int main ابتدا با تابعی که نوشتیم منبع ریست را نمایش می‌دهیم و سپس همه پرچم‌های ریست را پاک می‌کنیم؛

سپس یک شمارنده با مقدار اولیه‌ی صفر تعریف می‌کنیم  و مقدار شمارنده IWDG را بازنشانی می‌کنیم؛

حالا باید در حلقه while(1)، یک شرط برای بازنشانی مقدار شمارنده‌ی IWDG تعریف کنیم (که فشرده شدن کلید PA5 است)، که در صورت عدم وقوع شمارنده به صفر رسیده و ریست اتفاق افتد، همچنین مقدار شمارنده‌ای که تعریف کردیم را در هر بار اجرای حلقه افزایش می‌دهیم و چاپ می‌کنیم؛

اکنون باید یک کلید یا push-button به پایه PA5 متصل کنیم و برنامه را روی میکرو دانلود کنیم. نتیجه اجرا را در ترمینال سریال می‌بینیم؛

 

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

لینک این پروژه در گیت‌هاب

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

سیاوش

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

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

مقالات بیشتر
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
Sisoog Os گفت :
۱۴۰۱-۰۴-۱۵ ۱۱:۵۰

سلام ممنون از شما

become a writer

نویسنده شو !

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

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

نویسنده شو !

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

ارسال مقاله