ARM, آموزش, آموزش STM8, توصیه شده, مقاله های سیسوگ

تایمر نگهبان آنالوگ (AWD) در STM8 | قسمت سیزدهم

Analog Watchdog

سیسوگ در قسمت دوازدهم  آموزش میکروکنترلر STM8 مبحث مهم  و کاربردی مبدل آنالوگ به دیجیتال (ADC) را آموزش داد. در این قسمت از مجموعه مقالات قصد دارد شما را با ویژگی کاربردی تایمر نگهبان آنالوگ (Analog Watchdog) آشنا کند. با سیسوگ همراه باشید.

تایمر نگهبان آنالوگ (AWD)

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

واحد AWD در شرایطی که بخواهیم بر روی خروجی یک حسگر نظارت داشته باشیم و اقدامات سریع انجام دهیم بسیار مناسب است. به عنوان مثال، یک کنترل کننده دما را در نظر بگیرید. می خواهیم کنترل کننده بدون محاسبات پیچیده در زمانی که دمای محیط پایین تر از حد تعیین شده است سیستم گرمایش را روشن و زمانی که دما به حد بالای خود رسید سیستم گرمایش را خاموش کند. در میکروکنترلرهای دیگر این کار ساده با استفاده از دستورات شرطی  IF-ELSE انجام می شود.

 

بلوک دیاگرام AWD

 

AWD

اتصالات سخت افزاری

تنظیمات سخت افزاری میکروکنترلر STM8 برای RTC

نمونه کد AWD

توضیحات

کد AWD درست مانند کد ADC بیان شده در قسمت دوازدهم است. با این تفاوت که در اینجا از کانال 3 استفاده کرده ایم. راه اندازی AWD ساده است. فقط کافی است محدودیت ها را تعیین کنیم و مشخص کنیم کدام کانال باید نظارت شود و AWD را فعال کنیم.

در اینجا ما مقدار 600 و 200  را به ترتیب برای حدود بالا و پایین ADC تنظیم کردیم.

در تابع اصلی، ما به سادگی وضعیت AWD را بررسی می کنیم. اگر AWD در پین PD2 رخ می دهد (خارج شدن از منطقه مرزی) LED در PD3 شروع به چشمک زدن می کند. اگر PD2 مقداری بین 400 تا 800 ADC را بدست آورد، LED روشن می شود، که نشان دهنده منطقه محافظت شده است.

AWD-OFF در میکروکنترلر STM8

AWD-ON در میکروکنترلر STM8

در قسمت چهاردهم آموزش میکروکنترلر STM8 سیسوگ قصد دارد تایمر نگهبان IWDG را آموزش دهد. مثل همیشه با سیسوگ همراه باشید.

 

منبع

مطالب مرتبط

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

4 دیدگاه در “تایمر نگهبان آنالوگ (AWD) در STM8 | قسمت سیزدهم

  1. Avatar for محسن محسن گفت:

    سلام وقت بخیر
    اول ممنون بابت آموزش خوبتون. دوم دو تا سوال داشتم:
    1. این کد در قسمت main به چه منظوری نوشته شده for(j=0;j<0x0FFF;j++);
    2. فرمول های قسمت lcd_print را توضیح کوتاهی دهید و بگویی برای چه هدفی انجام می شوند.

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام دوست عزیز

      خواهش میکنم،
      ۱. برای ایجاد تاخیر هست عملا این موضوع
      ۲. اون تایع کار ساده ای رو انجام میده در واقع یه طول و عرض میگیره از شما و مقدار مود نظرتون رو در آن لوکیشن مورد نظر نمایش میده همین 🙂

      در ضمن برای حمایت از ما میتونید ما رو به دوستان خودتون معرفی کنید 🙂

  2. Avatar for Amir Amir گفت:

    شما حرف ندارید …
    ممنون

    1. Avatar photo electronic girl گفت:

      ممنون از لطف شما

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

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