جلسه پنجاه و یکم _ بررسی توابع و دستورات مربوط به کتابخانه DS1307
در جلسات قبل با واحد I2C و نحوه پیکربندی آن در نرم افزار STM32CubeMX آشنا شدیم و توابع پرکاربرد مربوط به این واحد را در نرم افزار Keil بررسی نمودیم در این جلسه قصد داریم تا به بررسی کتابخانه مربوط به DS1307 بپردازیم. کتابخانه مربوط به DS1307 را باز می کنیم تا به بررسی توابع و نحوه عملکرد آنها بپردازیم.
قبل از شروع این جلسه بهتر است تا لینک زیر را نیز مشاهده نمایید تا اطلاعات بیشتری در مورد DS1307 بدست آوردید و با پایه های آن و رجیستر های آن آشنا شوید.
معرفی DS1307
اکنون به سراغ کتابخانه مربوط به DS1307 می رویم تا توابع آن را بررسی کنیم.
از این تابع برای خواندن اطلاعات مربوط به رجیسترهای مختلف DS1307 استفاده شده است که دو آرگومان ورودی دارد که آرگومان اول مربوط به آدرس رجیستر مورد نظر می باشد و آرگومان دوم مربوط به بازگرداندن دیتا خوانده شده از رجیستر مورد نظر می باشد.درون این تابع از تابع HAL_I2C_Mem_Read استفاده شده است که این تابع مربوط به کتابخانه I2C می باشد که قبلا توضیحات آن ارائه شده است.
از این تابع برای نوشتن اطلاعات در رجیسترهای مختلف DS1307 استفاده شده است که دو آرگومان ورودی دارد که آرگومان اول مربوط به آدرس رجیستر مورد نظر می باشد و آرگومان دوم مربوط به داده ای است که قصد داریم درون آن رجیستر بنویسیم. درون این تابع از تابع HAL_I2C_Mem_Write استفاده شده است که این تابع مربوط به کتابخانه I2C می باشد که قبلا توضیحات آن ارائه شده است.
تابع مربوط به تبدیل تاریخ میلادی به شمسی می باشد و با توجه به اینکه اطلاعات مربوط به تاریخ باید بر حسب تاریخ میلادی روی آی سی نوشته شود در زمان خواندن اطلاعات مربوط به تاریخ، باید تاریخ را به شمسی تبدیل نمود. این تابع سه آرگومان می گیرد که آرگومان اول سال میلادی و آرگومان دوم ماه میلادی و آرگومان سوم روز میلادی می باشد.
با توجه به اینکه در ایران با تاریخ شمسی سرو کار داریم با استفاده از این تابع تاریخ شمسی را به میلادی تبدیل می کنیم تا بتوانیم تاریخ وارد شده را به میلادی روی آی سی بنویسیم
این تابع بررسی می کند که آیا سال شمسی وارد شده کبیسه است یا خیر.
این تابع بررسی می کند که آیا سال میلادی وارد شده کبیسه است یا خیر.
با استفاده از این تابع بررسی می کنیم که آیا اطلاعاتی که درون رجیسترهای مربوط به ساعت و تاریخ ذخیره شده است، صحیح می باشد یا خیر. مثلا اگر ثانیه بزرگ تر از 59 باشد این مقدار صحیح نمی باشد و با مقدار 0 جایگزین می شود.
برای خواندن اطلاعات مربوط به ساعت و تاریخ از این تابع استفاده می شود.
برای تنظیم اطلاعات مربوط به ساعت آی سی از این تابع استفاده می شود و اطلاعات مربوط به ساعت، دقیقه و ثانیه به عنوان آرگومان ورودی به این تابع ارسال می شوند و این اطلاعات در رجیسترهای مربوط به ساعت و دقیقه و ثانیه قرار می گیرد.
از این تابع به منظور تنظیم اطلاعات مربوط به تاریخ استفاده می شود و اطلاعات مربوط به سال، ماه، روز های سپری شده از ماه و روزهای سپری شده از هفته به عنوان آرگومان های ورودی به این تابع ارسال می شود. اطلاعات ارسالی بر مبنی تاریخ شمسی می باشد.
در انتها می توانید کتابخانه مربوط به این جلسه را دانلود نمایید.
دلتون شاد و لبتون پر خنده
محمد هادی دشتی
برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST ) کلیک کنید.
برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام ) کلیک کنید.
برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.
برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.
برای مشاهده آموزش جلسه سیو دوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش اول)) کلیک کنید.
برای مشاهده آموزش جلسه سی و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش دوم)) کلیک کنید.