آموزش میکروکنترلر STM32
در قسمت سیزدهم از آموزش میکروکنترلرSTM32 وقفههای رابط RTC ازجمله وقفه ثانیه و وقفه آلارم را معرفیکردیم و آموزشدادیم چگونه میتوان تاریخ شمسی و میلادی را به یکدیگر تبدیل کرد و همچنین تبدیل یک تاریخ و زمان به عدد Unix Time Stamp یا بالعکس را آموزش دادیم.
در این قسمت از آموزش میکروکنترلر STM32 قصد داریم به آموزش رجیسترهای پشتیبان و کاربردی RTC بپردازدیم. با ما همراه باشید.
رجیسترهای پشتیبان RTC
تعداد رجیسترهای پشتیبان RTC در خانواده CORTEXM3 به تعداد ۴۲عدد میباشد و در خانواده CORTEXM4 به تعداد ۲۰عدد از این رجیسترهای ۳۲بیتی موجود میباشد. کاربرد این رجیسترها این است که ما میتوانیم محتوای آنها را حتی در زمانیکه برق میکروکنترلر قطع است بااتصال باتری به پایه BAT میکرو حفظ کنیم. بهعنوانمثال میتوانیم از این رجیسترها برای ساخت یک شمارنده در یک خط تولید استفادهکنیم، که تعدادشمارش را داخل این رجیسترها قراردهیم. تازمانیکه دستگاه خاموش میشود محتوا رجیستر که در اصل همان شمارش انجامشده میباشد حفظشود. یک کاربرد اصلی دیگر که از این رجیسترها برای اطلاع از بهمخوردن زمان و تاریخ واحد RTC میباشد به اینصورت که زمانیکه واحد RTC برای اولینبار پیکرهبندی میشود ما یکیاز این رجیسترها را بامقداری خاص پر میکنیم، درنتیجه هربار که برق میکروکنترلر قطع و وصل میشود ما دوباره در ابتدای برنامه مقدار داخل آن رجیستر را بررسی میکنیم، اگر بهم خورده بود به اینمعنی است که مقادیر RTC بهم خورده و ساعت و تاریخ باید دوباره تنظیم شوند. ما ازطریق فرمانهای زیر میتوانیم مقادیر داخل این رجیسترها را تغییر دهیم یا بخوانیم.
(HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data
ازطریق تابع بالا میتوانیم یک مقدار مشخص را در یکیاز رجیسترهای پشتیبان بریزیم. در اینجا منظور از آرگومان hrtc همان نام واحد RTC میباشد و منظور از آرگومان BackupRegister نام رجیستر پشتیبان میباشد که میتواند بین RTC_BKP_DR1 تا RTC_BKP_DR42 باشد و منظور از آرگومان Data همان مقداری است که میخواهیم داخل رجیستر مربوطه جایگذاری کنیم.
(Uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister
ازطریق تابع بالا هم میتوانیم مقدار داخل یکیاز رجیسترهای پشتیبان را بخوانیم.
در قسمت پانزدهم مجموعه آموزش میکروکنترلر STM32 قصد داریم واحد RTC را ازطریق میکروکنترلرهای خانواده CORTEXM4 راهاندازی کنیم. تا پایان مجموعه آموزش میکروکنترلر STM32 با ما همراه باشید.
منبع:سیسوگ