اطلاعیه

Collapse
No announcement yet.

راه اندازی RTC

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی RTC

    سلام دوستان
    می خواستم RTC میکرو stm32f103re رو راه اندازی کنم دوستان اگه میشه کمک کنن و توضیحاتی در موردش بزارن
    آیا تاریخ رو نرم افزاری باید خودم ایجاد کنم یا نه خودش با ست کردن میده
    اگر برق مدار قطع بشه باتری بکاپ چه اطلاعاتی رو نگه میداره
    و اطلاعاتی دیگه که کمک کنه
    ممنون

    #2
    پاسخ : راه اندازی RTC

    با سلام
    راه اندازیش اسونه، تو انجمن هم بحث شده،
    برای تاریخ باید بگم شما یکبار ست می کنی و بعد از اون خودش شروع میکنه به شمردن و نیازی به ست مجدد نیست، باتری چیزی ذخیره نمی کنه، برق قسمت rtc رو تامین می کنه تا موقع قطع برق اون قسمت به شمارش ادامه بده و اطلاعات حفظ بشه،
    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

    دیدگاه


      #3
      پاسخ : راه اندازی RTC

      نوشته اصلی توسط hessam2013
      با سلام
      راه اندازیش اسونه، تو انجمن هم بحث شده،
      برای تاریخ باید بگم شما یکبار ست می کنی و بعد از اون خودش شروع میکنه به شمردن و نیازی به ست مجدد نیست، باتری چیزی ذخیره نمی کنه، برق قسمت rtc رو تامین می کنه تا موقع قطع برق اون قسمت به شمارش ادامه بده و اطلاعات حفظ بشه،
      ممنون
      منظورم این بود که آیا رجیستری داره که تاریخ رو بده یا نه من خودم باید برنامه بنویسم که تاریخو حساب کنم
      باتری که برق rtc رو تامین می کنه فقط رجیستر های rtc فعال می مونند ولی اگه خودم باید تاریخو حساب کنم باید در میکرو برنامه بنویسم و ربطی به قسمتrtc نداره فقط از خروجی آن استفاده میکنم و اگر برق قطع بشه برنامه ی من هم از اول شروع به کار میکنه و تاریخ هم از بین میره و از اول شروع به کار میکنه ولی اگر رجیستر های rtc دارای تاریخ هم می باشد اوتوقت نه دیگه من رفرنس منوال رو که خوندم ندیدم اگه هست رجیسترشو بگید یا کد cmsis انرا الان فکر کنم منظورمو بهتر گفته باشم
      و اینکه اگر برنامه ای دارید بزارید ممنون میشم

      دیدگاه


        #4
        پاسخ : راه اندازی RTC

        نوشته اصلی توسط popular
        ممنون
        منظورم این بود که آیا رجیستری داره که تاریخ رو بده یا نه من خودم باید برنامه بنویسم که تاریخو حساب کنم
        باتری که برق rtc رو تامین می کنه فقط رجیستر های rtc فعال می مونند ولی اگه خودم باید تاریخو حساب کنم باید در میکرو برنامه بنویسم و ربطی به قسمتrtc نداره فقط از خروجی آن استفاده میکنم و اگر برق قطع بشه برنامه ی من هم از اول شروع به کار میکنه و تاریخ هم از بین میره و از اول شروع به کار میکنه ولی اگر رجیستر های rtc دارای تاریخ هم می باشد اوتوقت نه دیگه من رفرنس منوال رو که خوندم ندیدم اگه هست رجیسترشو بگید یا کد cmsis انرا الان فکر کنم منظورمو بهتر گفته باشم
        و اینکه اگر برنامه ای دارید بزارید ممنون میشم
        RTC خودش تاریخ و ساعت رو حساب میکنه فقط شما هر موقع نیاز داری ازش میخونی در صورت قطع شدن برق و وجود باتری شمارش ادامه پیدا میکنه

        دیدگاه


          #5
          پاسخ : راه اندازی RTC

          نوشته اصلی توسط ehsanbagheri
          RTC خودش تاریخ و ساعت رو حساب میکنه فقط شما هر موقع نیاز داری ازش میخونی در صورت قطع شدن برق و وجود باتری شمارش ادامه پیدا میکنه
          سلام
          دوست عزیز من RTC رو راه اندازی کردم با stm32f103 بعد اینکه ساعت دقیقه و ثانیه رو گرفتم باتری بکاپ هم گذاشتم کاملا درست بود .
          فقط اینکه برای نمایش تاریخ مشکل دارم الان قسمت rtc یک قسمت شمارنده داره که میاییم اونو با ریاضیات تبدیل به ساعت می کنیم و اگر هم قطع بشود برق اون رجیستر در بکاپ فعال است و مشکلی نداریم و چون محدوده وقتی ساعت به2359 رسید با مقدار صفر مقدار می دهیم باز و دوباره همینجوری ساعت رو می گیره.
          ولی برای تاریخ میاییم یه تاریخی رو ست می کنیم و میگیم که اره هر وقت رسید به اون ساعت یک روز برو جلو و این رو تویه میکرو می نویسیم .
          فرض کن ساعت 22 برق بره و تا دوروز بعد برق وصل نشه ما میکرومون کار نمی کرده که تاریخ رو بگیریم ولی ساعت چون رجیسترش تویه بکاپ بوده اوکی هستش .
          من رجیستری نتونستم پیدا کنم برای تاریخ که بهمون بده یا فعال باشه در بکاپ .
          اگر میدونید چطوری هست لطفا راهنمایی کنید شما و دوستان دیگر

          دیدگاه


            #6
            پاسخ : راه اندازی RTC

            بیین دوست عزیز rtc خودش همه این کار ها رو انجام میده لازم نیست بهش بگی الان نیمه شبه صفر شو برو روز بعد، یا اخر ماه هست برو بعدی خودش اتوماتیک همه این کار ها رو انجام میده
            The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

            دیدگاه


              #7
              پاسخ : راه اندازی RTC

              نوشته اصلی توسط hessam2013
              بیین دوست عزیز rtc خودش همه این کار ها رو انجام میده لازم نیست بهش بگی الان نیمه شبه صفر شو برو روز بعد، یا اخر ماه هست برو بعدی خودش اتوماتیک همه این کار ها رو انجام میده
              خب چطور من باید ازش بگیرم اطلاعات رو
              این تمامی توابع cmsisبرای rtc است
              void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);
              void RTC_EnterConfigMode(void);
              void RTC_ExitConfigMode(void);
              uint32_t RTC_GetCounter(void);
              void RTC_SetCounter(uint32_t CounterValue);
              void RTC_SetPrescaler(uint32_t PrescalerValue);
              void RTC_SetAlarm(uint32_t AlarmValue);
              uint32_t RTC_GetDivider(void);
              void RTC_WaitForLastTask(void);
              void RTC_WaitForSynchro(void);
              FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG);
              void RTC_ClearFlag(uint16_t RTC_FLAG);
              ITStatus RTC_GetITStatus(uint16_t RTC_IT);
              void RTC_ClearITPendingBit(uint16_t RTC_IT);
              باکدوم باید ساعت و تاریخ رو بگیرم؟
              با تشکر

              دیدگاه


                #8
                پاسخ : راه اندازی RTC

                من از توابع Hal خود st استفاده می کنم، اونجا دو تابع برای گرفتن زمان و تاریخ هست
                The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                دیدگاه


                  #9
                  پاسخ : راه اندازی RTC

                  نوشته اصلی توسط hessam2013
                  من از توابع Hal خود st استفاده می کنم، اونجا دو تابع برای گرفتن زمان و تاریخ هست
                  دوست عزیز من رفرنس منوال رو خوندم چیزی برای اینکه مستقیم بهت بده ندیدم
                  حتما در توابع حال که استفاده کردید شاید در تابع گرفتن زمان خودش رفته محاسبات رو انجام داده و بعد فقط به شکل یه تابع برای شما گذاشته که استفاده کنید.
                  چون در مثال cmsis و هم رجیستری که دیدم اومده بود ساعت رو حساب کرده بود ولی و تاریخ رو نمی دونم چطوری چون باید در یک رجیستری ثبت کنم که بعد از قطع برق در بکاپ فعال باشه
                  void Time_Display(uint32_t TimeVar)
                  {
                  uint32_t THH = 0, TMM = 0, TSS = 0;

                  /* Reset RTC Counter when Time is 2359 */
                  if (RTC_GetCounter() == 0x0001517F)
                  {
                  RTC_SetCounter(0x0);
                  /* Wait until last write operation on RTC registers has finished */
                  RTC_WaitForLastTask();
                  }

                  /* Compute hours */
                  THH = TimeVar / 3600;
                  /* Compute minutes */
                  TMM = (TimeVar % 3600) / 60;
                  /* Compute seconds */
                  TSS = (TimeVar % 3600) % 60;

                  printf("Time: %0.2d:%0.2d:%0.2d\r", THH, TMM, TSS);
                  }
                  همینطور که اینجا میبینید اومده حساب کرده .
                  بازهر کی میدونه لطفا راهنمایی کنه برای تاریخ واینکه شاید من اشتباه می کنم و اینکه بشه مستقیم گرفت تایم رو
                  دوست عزیز اگر بتونید سی اون تابع گرفتن زمان و تاریخ در حال رو بزارید که ببینم چیکار کرده ممنون میشم

                  دیدگاه

                  لطفا صبر کنید...
                  X