Инструменты пользователя

Инструменты сайта


chibios:hal:realtimeclock

RTC - Часы реального времени

В ChibiOS есть две версии драйвера RTC: первая версия предназначена для серии F1xx, вторая для остальных.

Предполагается, что:

  • на плате распаян кристалл на 32768КГц и пара конденсаторов на 6.8пФ;
  • вы знакомы с соответствующими разделами документации.

Активируем RTC и указываем источник синхронизации:

#define HAL_USE_RTC         TRUE
#define STM32_LSE_ENABLED   TRUE
#define STM32_RTCSEL        STM32_RTCSEL_LSE

Дополнительные функции для работы с RTC расположены в файле chrtclib.h, не забываем подключить его в Makefile.

Определяем время и дату для холодного старта:

struct tm TM = {0, 05, 14, 16, 3, 114, 3, 0, 0};
rtcSetTimeTm(&RTCD1, &TM);

RTC позволяет назначит обработчик, который будет вызываться на разные события:

static void rtc_cb(RTCDriver *rtcp, rtcevent_t event) {
  (void)rtcp;
  switch (event) {
  case RTC_EVENT_OVERFLOW:
    break;
  case RTC_EVENT_SECOND:
    break;
  case RTC_EVENT_ALARM:
    break;
  }
}
 
rtcSetCallback(&RTCD1, rtc_cb);

Дальше всё зависит от задачи…

chibios/hal/realtimeclock.txt · Последние изменения: 2014/10/29 16:07 — Ruslan Popov