سلام
ببخشید
من rtc رو فعال کردم و دارم ساعت رو روی lcd نمایش میدم ولی ساعتم جلو میفته یعنی توی 20 دقیقه حدودا 4 ثانیه جلو میفته !!!
باید چیکار کرد ؟؟؟
سلام
ببخشید
من rtc رو فعال کردم و دارم ساعت رو روی lcd نمایش میدم ولی ساعتم جلو میفته یعنی توی 20 دقیقه حدودا 4 ثانیه جلو میفته !!!
باید چیکار کرد ؟؟؟
البته فک نمی کنم ، این قدر که شما می گی خطا داشته باشه ARM، ولی اگه دقت بالاتر و امکانات بیشتر می خوای از آی سی های ساعت استفاده کن. معروفترینشون ds1307 هست. خطاشون فوق العاده کمه.
در این حالت بیشتر خطا برمیگرده به دقت کریستال
اگه برای مسجد یا جایی میخوای که لازمه دقیق باشه از ds1307 استفاده نکن که بعد 1 هفته 5 دقیقه عقب میفته من اینکار رو کردم و مشکل ساز شد. تنها راهی که میتونی یه ساعت دقیق داشته باشی بعد از تحقیقات زیادی که انجام دادم استفاده از ماژول GPS هست که ساعت جهانی رو از اون بخونی وگرنه از هر آی سی استفاده کنی بعد از چن روز و اگه خیلی شاخ باشه بعد از چند هفته خطاش مشخص میشه.
سلام. من يه lpc1768 دارم . يه ماژول DS1307 با يه LCD tft 3.2" wide. مي خوام ساعت و تاريخ رو نشون بدم . لطفا راهنمايي كنين
یه رجیستر کالیبراسیون داره با اون میتونی کالیبرش کنی
جهت کالیبره کردن RTC میشه از تابع RTC_CalibConfig استفاده کرد.سوالم اینه که مقدار ورودی عددی این تابع چگونه محاسبه میشه؟(با چه رابطه ریاضی؟)
با اضافه کردن تابع کالیبراسیون میشه اثرات دما و هرگونه نویز رو تو کلاک RTC از بین برد و از یک ساعت دقیق استفاده کرد.
مثال برای ساعت سریعتر از مفدار واقعی:کد:void RTC_CalibConfig(LPC_RTC_TypeDef *RTCx, uint32_t CalibValue, uint8_t CalibDir) { RTCx->CALIBRATION = ((CalibValue) & RTC_CALIBRATION_CALVAL_MASK) \ | ((CalibDir == RTC_CALIB_DIR_BACKWARD) ? RTC_CALIBRATION_LIBDIR : 0); }
مثال برای ساعت کندتر از مقدار واقعی:کد:RTC_CalibConfig(LPC_RTC, 5, RTC_CALIB_DIR_BACKWARD);
مقادیر عددی رو با سعی و خطا تغییر بدید.کد:RTC_CalibConfig(LPC_RTC, 13, RTC_CALIB_DIR_FORWARD);
ویرایش توسط omid_2132 : 03-03-2018 در ساعت 21:16
یعنی اگر RTC در هر ساعت (3600 ثانیه) فقط یک ثانیه عقب میفتاد با تابع بالا مشکل حل می شد.کد:RTC_CalibConfig(LPC_RTC,3600, RTC_CALIB_DIR_FORWARD);
حداکثر مقدار برا متغیز 17 بیتی CalibValue مقدار 131072 میباشد.یعنی این تابع میتواند حداکثر: خطای 1 ثانیه در هر یک و نیم روز را تصحیح کند.
ویرایش توسط omid_2132 : 18-03-2018 در ساعت 22:22
باسلام . من RTC که راه اندازی کردم خیلی دقیق بود و اصلا عقب یا جلو نمی افتاد البته با lpc1788 .ولی در کل رجیسترهایی جهت کالیبره کردن RTC وجود داره که فقط گذری دیددم و چون مورد من دقیق بود با این رجیسترها کار نکردم .میخواید یه جستجو توو datasheet یا لایبرری که ازش استفاده میکنید انجام بدبن