Драйвер счетчика реального времени и Wake-контроллера
Подробнее...
|
| файл | hal_rwc.h |
| | Интерфейс драйвера модуля RWC.
|
| |
|
| #define | RWC_SYNC_RETRY_TIMES 0U |
| | Количество циклов ожидания
|
| |
|
#define | RWC_SET_RETRY_TIMES 10U |
| | Количество циклов установки времени
|
| |
|
|
typedef struct _rtc_datetime | rtc_datetime_t |
| | Структура используемая для хранения даты и времени
|
| |
Драйвер счетчика реального времени и Wake-контроллера
- Заметки
- Драйвер модуля RWC управляет счетчиком реального времени и Wake-контроллером.
◆ DAYS_IN_A_YEAR
| #define DAYS_IN_A_YEAR (365U) |
◆ RWC_SYNC_RETRY_TIMES
| #define RWC_SYNC_RETRY_TIMES 0U |
Количество циклов ожидания
- Заметки
- 0 - максимальное ожидание. Если необходимо бесконечное ожидание, закомментируйте этот макрос
◆ SECONDS_IN_A_DAY
| #define SECONDS_IN_A_DAY (86400U) |
◆ SECONDS_IN_A_HOUR
| #define SECONDS_IN_A_HOUR (3600U) |
◆ SECONDS_IN_A_MINUTE
| #define SECONDS_IN_A_MINUTE (60U) |
◆ YEAR_RANGE_END
| #define YEAR_RANGE_END (2099U) |
Максимально допустимый год
◆ YEAR_RANGE_START
| #define YEAR_RANGE_START (1970U) |
◆ rwc_alarm_enable
Разрешение прерывания ALARM.
| Элементы перечислений |
|---|
| RWC_AlarmDisable | Запретить прерывание ALARM
|
| RWC_AlarmEnable | Разрешить прерывание ALARM
|
◆ rwc_cmd
Команды доступа к внутренним регистрам
| Элементы перечислений |
|---|
| RWC_CmdWait | Признак завершения выполнения команды, записывать нельзя
|
| RWC_CmdWrite | Команда записи регистра
|
| RWC_CmdRead | Команда чтения регистра
|
◆ rwc_freq_serial
Значения делителей частоты внутреннего интерфейса
| Элементы перечислений |
|---|
| RWC_FS8MHz | 8 МГц
|
| RWC_FS4MHz | 4 МГц
|
| RWC_FS2MHz | 2 МГц
|
| RWC_FS1MHz | 1 МГц
|
| RWC_FS500kHz | 500 кГц
|
| RWC_FS250kHz | 250 кГц
|
| RWC_FS125kHz | 125 кГц
|
| RWC_FS625hHz | 62,5 кГц
|
◆ rwc_internal_register
Внутренние регистры с батарейным питанием
| Элементы перечислений |
|---|
| RWC_TrimLoad | Регистр записи значения подстройки из регистра TRIM
|
| RWC_Time | Регистр текущего значения счетчика времени
|
| RWC_Alarm | Регистр времени пробуждения
|
| RWC_Trim | Регистр подстройки осцилляторов
|
| RWC_Config | Конфигурационный регистр
|
| RWC_GeneralReg | Регистр общего назначения
|
| RWC_WakeConfig | Регистр настройки контроллера пробуждения
|
◆ rwc_lfe_bypass
Режимы работы осциллятора LFE.
| Элементы перечислений |
|---|
| RWC_QuartzResonator | Режим осциллятора соместно с внешним кварцевым резонатором
|
| RWC_CMOSSignal | Режим буфера для внешнего КМОП сигнала на выводе XTI32
|
◆ rwc_reset_type
Виды сбросов внутренних регистров при сигнале SRSTn.
| Элементы перечислений |
|---|
| RWC_ResetOnlyWakeConfigAndConfig | Cбрасываются только регистры WakeConfig и Config
|
| RWC_ResetAllExpectedGeneralReg | Сбрасываются все регистры кроме GeneralReg
|
◆ rwc_rtcclk_divisor
Делители частоты RTCCLK.
| Элементы перечислений |
|---|
| RWC_Div1 | Делитель LFI на 1
|
| RWC_Div2 | Делитель LFI на 2
|
| RWC_Div4 | Делитель LFI на 4
|
| RWC_Div8 | Делитель LFI на 8
|
| RWC_Div16 | Делитель LFI на 16
|
| RWC_Div32 | Делитель LFI на 32
|
| RWC_Div64 | Делитель LFI на 64
|
| RWC_Div128 | Делитель LFI на 128
|
| RWC_Div256 | Делитель LFI на 256
|
| RWC_Div512 | Делитель LFI на 512
|
| RWC_Div1024 | Делитель LFI на 1024
|
| RWC_Div2048 | Делитель LFI на 2048
|
| RWC_Div4096 | Делитель LFI на 4096
|
| RWC_Div8192 | Делитель LFI на 8192
|
| RWC_Div16384 | Делитель LFI на 16384
|
| RWC_Div32768 | Делитель LFI на 32768
|
| RWC_DivMax | Максимальный делитель
|
◆ rwc_rtcclk_type
Источник частоты, подаваемой на RTCCLK.
| Элементы перечислений |
|---|
| RWC_RTCClkTypeLFI | RTCClk переключена на LFI
|
| RWC_RTCClkTypeLFE | RTCClk переключена на LFE
|
◆ rwc_shutdown_force
Принудительный переход в SHUTDOWN.
| Элементы перечислений |
|---|
| RWC_ShutdownNoSet | Не переходить в SHUTDOWN
|
| RWC_ShutdownSet | Переходить в SHUTDOWN
|
◆ rwc_status
Статусы драйвера CLKCTR.
| Элементы перечислений |
|---|
| RWC_Status_Ok | Нет ошибок
|
| RWC_Status_InvalidArgument | Недопустимый параметр
|
| RWC_Status_CheckError | Получена ошибка от оборудования
|
| RWC_Status_VerifyError | Верификация не прошла
|
| RWC_Status_ConfigureError | Недопустимая конфигурация или ошибка в описании оборудования
|
| RWC_Status_HardwareBusy | Оборудование не готово
|
| RWC_Status_Timeout | Тайм-аут
|
◆ rwc_time_clk_sel
Выбор сигнала для тактирования счетчика времени
| Элементы перечислений |
|---|
| RWC_TimeClock32kHz | 32 кГц (RTCCLK)
|
| RWC_TimeClock1Hz | 1 Гц
|
◆ rwc_timer_status
Статусы таймера
| Элементы перечислений |
|---|
| RWC_WakeStat3 | Бит устанавливается после первичной подачи питания на RWC. Бит сбрасывается при переходе в режим SHUTDOWN.
|
| RWC_WakeStat2 | Бит устанавливается при выходе из режима SHUTDOWN по внешнему событию WKUP либо по сбросу SRSTn. Бит сбрасывается при переходе в режим SHUTDOWN.
|
| RWC_WakeStat1 | Бит устанавливается при выходе из режима SHUTDOWN. Бит сбрасывается при переходе в режим SHUTDOWN.
|
◆ rwc_wake_up_irq_enable
Разрешение прерывания RWC_WKUP.
| Элементы перечислений |
|---|
| RWC_IRQWkUpDisable | Запрещёно
|
| RWC_IRQWkUpEnable | Разрешено
|
◆ rwc_wake_up_polarity
Уровень активного сигнала WKUP для генерирования прерывания
| Элементы перечислений |
|---|
| RWC_WkUpPolarityHigh | Высокий уровень
|
| RWC_WkUpPolarityLow | Низкий уровень
|
◆ rwc_wkup_enable
Разрешение работы входа WKUP.
| Элементы перечислений |
|---|
| RWC_WkUpDisable | Прерывание WKUP запрещено
|
| RWC_WkUpEnable | Прерывание WKUP разрешено
|
◆ RWC_Deinit()
Деинициализирует таймер реального времени
- Заметки
- Сбрасывает регистры RWC_Config и RWC_WakeConfig таймера к значениям по умолчанию
- Аргументы
-
- Возвращаемые значения
-
◆ RWC_EnableAlarmTimerInterruptFromDPD()
| enum rwc_status RWC_EnableAlarmTimerInterruptFromDPD |
( |
RWC_Type * | base, |
|
|
bool | enable ) |
Разрешение прерывания по сигналу будильника из режима глубокого отключения питания
- Аргументы
-
| base | Таймер |
| enable | Управление разрешением.
- true: разрешено.
- false: запрешено.
|
- Возвращаемые значения
-
◆ RWC_EnableWakeUpTimerInterruptFromDPD()
| enum rwc_status RWC_EnableWakeUpTimerInterruptFromDPD |
( |
RWC_Type * | base, |
|
|
bool | enable ) |
Разрешение прерывания по сигналу wake-up из режима глубокого отключения питания
- Аргументы
-
| base | Таймер |
| enable | Управление разрешением.
- true: разрешено.
- false: запрешено.
|
- Возвращаемые значения
-
◆ RWC_GetAlarm()
Возвращает время будильника
- Аргументы
-
| base | Таймер |
| datetime | Структура дата/время |
- Возвращаемые значения
-
◆ RWC_GetDatetime()
Получает текущее дату/время и сохраняет в указанную структуру
- Аргументы
-
| base | Таймер |
| datetime | Структура дата/время |
- Возвращает
- RWC_Status_Ok
-
RWC_Status_InvalidArgument
◆ RWC_GetDefaultConfig()
Получение конфигурации таймера по умолчанию
- Аргументы
-
- Возвращаемые значения
-
◆ RWC_GetInternalRegister()
Чтение значения из внутреннего регистра RWC.
- Заметки
- Функцию не рекомендуется использовать без понимания функционирования блока
- Аргументы
-
| base | Таймер |
| reg | Внутренний регистр |
| value | Значение регистра |
- Возвращаемые значения
-
◆ RWC_GetLastAPIStatus()
Получение статуса выполнения функции, тип результата которой отличен от enum rwc_status.
- Возвращаемые значения
-
◆ RWC_GetRTCClkParam()
Чтение делителя и источника частоты RTCCLK.
- Заметки
- Функцию не рекомендуется использовать без понимания функционирования блока
- Аргументы
-
| div | Делитель частоты |
| src | Источник частоты |
- Возвращаемые значения
-
◆ RWC_GetSecondsTimerCount()
| enum rwc_status RWC_GetSecondsTimerCount |
( |
RWC_Type * | base, |
|
|
uint32_t * | sec ) |
Получение текущее время в секундах
- Аргументы
-
| base | Таймер |
| sec | Считанное значение секунд |
- Возвращаемые значения
-
◆ RWC_GetSecondsTimerMatch()
| uint32_t RWC_GetSecondsTimerMatch |
( |
RWC_Type * | base | ) |
|
Получает актуальное время срабатывания будильника в секундах
- Аргументы
-
- Возвращает
- Врема будильника в секундах
◆ RWC_GetStatusFlags()
| uint32_t RWC_GetStatusFlags |
( |
RWC_Type * | base | ) |
|
Получение статусов таймера реального времени
- Аргументы
-
- Возвращает
- Объединение статусов rwc_timer_status
◆ RWC_GetTime()
| uint32_t RWC_GetTime |
( |
RWC_Type * | base | ) |
|
Чтение значения счетчика реального времени
- Аргументы
-
- Возвращаемые значения
-
| Значение | регистра времени TIME |
◆ RWC_Init()
Инициализирует таймер реального времени
- Заметки
- Эту функцию следует вызывать перед использованием драйвера таймера реального времени.
- Аргументы
-
| base | Таймер |
| cfg | Конфигурация |
- Возвращаемые значения
-
◆ RWC_InterruptClear()
| enum rwc_status RWC_InterruptClear |
( |
RWC_Type * | base | ) |
|
Сброс прерывания RWC_ALARM.
- Аргументы
-
- Возвращаемые значения
-
| RWC_Status_Ok | |
| RWC_Status_InvalidArgument | |
◆ RWC_SetAlarm()
Устанавливает время будильника
- Заметки
- Функция проверяет, превышает ли указанное время срабатывания будильника текущее время. Если нет, то функция не устанавливает сигнал будильника и возвращает сообщение об ошибке.
- Аргументы
-
| base | Таймер |
| alarmTime | Структура дата/время |
- Возвращаемые значения
-
◆ RWC_SetDatetime()
◆ RWC_SetInternalRegister()
Запись значения во внутренний регистр RWC.
- Заметки
- Функцию не рекомендуется использовать без понимания функционирования блока
- Аргументы
-
| base | Таймер |
| reg | Внутренний регистр |
| value | Записываемое значение |
- Возвращаемые значения
-
◆ RWC_SetLFEBypass()
Выбор режима работы осциллятора LFE.
- Аргументы
-
| base | Базовый адрес |
| value | Режим работы осциллятора LFE |
- Возвращаемые значения
-
◆ RWC_SetLFx()
Выбор генератора LFE или LFI.
- Аргументы
-
| base | Базовый адрес |
| value | Генератор |
- Возвращаемые значения
-
◆ RWC_SetResetCtrl()
Управление сбросом регистров при сигнале на входе SRSTn.
- Аргументы
-
| base | Базовый адрес |
| value | Вид сброса |
- Возвращаемые значения
-
◆ RWC_SetRTCClkParam()
Запись делителя и источника частоты RTCCLK.
- Заметки
- Допустимые значения для делителя частоты - степени 2 от 2^0 до 2^RWC_DivMax.
-
Функцию не рекомендуется использовать без понимания функционирования блока
- Аргументы
-
| div | Делитель частоты |
| src | Источник частоты |
- Возвращаемые значения
-
◆ RWC_SetSecondsTimerCount()
| enum rwc_status RWC_SetSecondsTimerCount |
( |
RWC_Type * | base, |
|
|
uint32_t | count_value ) |
Устанавливает текущее время в секундах
- Заметки
- Время устанавливается до тех пор, пока не будет установлено либо не будет превышено максимальное число попыток записи.
- Аргументы
-
| base | Таймер |
| countValue | Время в секундах |
- Возвращаемые значения
-
◆ RWC_SetSecondsTimerMatch()
| enum rwc_status RWC_SetSecondsTimerMatch |
( |
RWC_Type * | base, |
|
|
uint32_t | match_value ) |
Устанавливает время будильника в секундах
- Аргументы
-
| base | Таймер |
| matchValue | Время будильника в секундах |
- Возвращаемые значения
-
◆ RWC_SetWakeUpActiveLewel()
Установка полярности сигнала wake_up.
- Аргументы
-
| base | Базовый адрес |
| value | Полярность сигнала |
- Возвращаемые значения
-
◆ RWC_SetWakeUpEnable()
| enum rwc_status RWC_SetWakeUpEnable |
( |
RWC_Type * | base, |
|
|
bool | enable ) |
Разрешение работы входа wake_up.
- Аргументы
-
| base | Базовый адрес |
| enable | Разрешение |
- Возвращаемые значения
-