RTC

Overview

Provides standard real-time clock (RTC) APIs.

These APIs allow you to perform operations such as reading or writing system time, reading or writing alarm time, setting alarm interrupts, registering alarm callbacks, setting the external frequency, resetting the RTC driver, and customizing RTC configurations. The RTC driver provides precise real time for the operating system (OS). If the OS is powered off, the RTC driver continues to keep track of the system time using an external battery.

Since:

1.0

Summary

Files

File Name

Description

rtc_if.h

Declares the standard RTC APIs.

Data Structures

Data Structure Name

Description

RtcTime

Defines the RTC information.

Typedefs

Typedef Name

Description

RtcAlarmCallback) (enum RtcAlarmIndex)

typedef int32_t(* 

Defines a callback that will be invoked when an alarm is generated at the specified time.

Enumerations

Enumeration Name

Description

RtcAlarmIndex { RTC_ALARM_INDEX_A = 0, RTC_ALARM_INDEX_B = 1 }

Enumerates alarm indexes.

Functions

Function Name

Description

RtcOpen (void)

struct DevHandle 

Opens the RTC device to obtain its handle.

RtcClose (struct DevHandle handle)

void 

Releases a specified handle of the RTC device.

RtcReadTime (struct DevHandlehandle, struct RtcTimetime)

int32_t 

Reads time from the RTC driver.

RtcWriteTime (struct DevHandlehandle, const struct RtcTimetime)

int32_t 

Writes format-compliant time to the RTC driver.

RtcReadAlarm (struct DevHandlehandle, enum RtcAlarmIndex alarmIndex, struct RtcTimetime)

int32_t 

Reads the RTC alarm time that was set last time.

RtcWriteAlarm (struct DevHandlehandle, enum RtcAlarmIndex alarmIndex, const struct RtcTimetime)

int32_t 

Writes the RTC alarm time based on the alarm index.

RtcRegisterAlarmCallback (struct DevHandlehandle, enum RtcAlarmIndex alarmIndex, RtcAlarmCallback cb)

int32_t 

Registers RtcAlarmCallback that will be invoked when an alarm is generated at the specified time.

RtcAlarmInterruptEnable (struct DevHandle handle, enum RtcAlarmIndex alarmIndex, uint8_t enable)

int32_t 

Enables or disables alarm interrupts.

RtcGetFreq (struct DevHandlehandle, uint32_t freq)

int32_t 

Reads the RTC external frequency.

RtcSetFreq (struct DevHandlehandle, uint32_t freq)

int32_t 

Sets the frequency of the external crystal oscillator connected to the RTC driver.

RtcReset (struct DevHandle handle)

int32_t 

Resets the RTC driver.

RtcReadReg (struct DevHandlehandle, uint8_t usrDefIndex, uint8_t value)

int32_t 

Reads the configuration of a custom RTC register based on the register index.

RtcWriteReg (struct DevHandle *handle, uint8_t usrDefIndex, uint8_t value)

int32_t 

Writes the configuration of a custom RTC register based on the register index.

Details

Typedef Documentation

RtcAlarmCallback

  1. typedefint32_t(*RtcAlarmCallback)(enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330))

Description:

Defines a callback that will be invoked when an alarm is generated at the specified time.

Enumeration Type Documentation

RtcAlarmIndex

  1. enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330)

Description:

Enumerates alarm indexes.

The alarm indexes will be used when you perform operations related to alarms.

Enumerator

Description

RTC_ALARM_INDEX_A 

Index of alarm A

RTC_ALARM_INDEX_B 

Index of alarm B

Function Documentation

RtcAlarmInterruptEnable()

  1. int32_tRtcAlarmInterruptEnable(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330) alarmIndex, uint8_t enable )

Description:

Enables or disables alarm interrupts.

Before performing alarm operations, you need to call this function to enable alarm interrupts, so that the RtcRegisterAlarmCallback will be called when the alarm is not generated upon a timeout.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
alarmIndexIndicates the RTC alarm index. For details, see RtcAlarmIndex.
enableSpecifies whether to enable RTC alarm interrupts. The value 1 means to enable alarm interrupts and value 0 means to disable alarm interrupts.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcClose()

  1. voidRtcClose(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle)

Description:

Releases a specified handle of the RTC device.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle to release, which is created via RtcGetHandle.

RtcGetFreq()

  1. int32_tRtcGetFreq(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,uint32_t* freq )

Description:

Reads the RTC external frequency.

This function reads the frequency of the external crystal oscillator connected to the RTC driver.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
freqIndicates the pointer to the frequency of the external crystal oscillator, in Hz.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcOpen()

  1. struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)*RtcOpen(void)

Description:

Opens the RTC device to obtain its handle.

The OS supports only one RTC device.

Returns:

Returns DevHandle if the operation is successful; returns NULL if the operation fails.

RtcReadAlarm()

  1. int32_tRtcReadAlarm(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330) alarmIndex, struct [RtcTime]($api-api-SmartVision-Devices-RtcTime.md) * time )

Description:

Reads the RTC alarm time that was set last time.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
alarmIndexIndicates the RTC alarm index. For details, see RtcAlarmIndex.
timeIndicates the pointer to the RTC alarm time information. For details, see RtcTime.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcReadReg()

  1. int32_tRtcReadReg(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,uint8_t usrDefIndex,uint8_t* value )

Description:

Reads the configuration of a custom RTC register based on the register index.

One index corresponds to one byte of the configuration value.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
usrDefIndexIndicates the index of the custom register.
valueIndicates the pointer to the configuration value of the specified register index.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcReadTime()

  1. int32_tRtcReadTime(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,struct[RtcTime]($api-api-SmartVision-Devices-RtcTime.md)* time )

Description:

Reads time from the RTC driver.

The time information includes the year, month, day, day of the week, hour, minute, second, and millisecond.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
timeIndicates the pointer to the time information read from the RTC driver. For details, see RtcTime.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcRegisterAlarmCallback()

  1. int32_tRtcRegisterAlarmCallback(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330) alarmIndex, [RtcAlarmCallback]($api-api-SmartVision-Devices-RTC.md#gaf9932b7e647bce0503f1314bbe5eef8d) cb )

Description:

Registers RtcAlarmCallback that will be invoked when an alarm is generated at the specified time.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
alarmIndexIndicates the RTC alarm index. For details, see RtcAlarmIndex.
cbIndicates the callback to register. For details, see RtcAlarmCallback.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcReset()

  1. int32_tRtcReset(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle)

Description:

Resets the RTC driver.

After the reset, the configuration registers are restored to the default values.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcSetFreq()

  1. int32_tRtcSetFreq(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,uint32_t freq )

Description:

Sets the frequency of the external crystal oscillator connected to the RTC driver.

Note that the frequency must be configured in accordance with the requirements specified in the product manual of the in-use component.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
freqIndicates the frequency to set for the external crystal oscillator, in Hz.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcWriteAlarm()

  1. int32_tRtcWriteAlarm(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,enum[RtcAlarmIndex]($api-api-SmartVision-Devices-RTC.md#gad7b3a575c848e2669db5e5b6f7e74330) alarmIndex, const struct [RtcTime]($api-api-SmartVision-Devices-RtcTime.md) * time )

Description:

Writes the RTC alarm time based on the alarm index.

Note that the RTC start time is 1970/01/01 Thursday 00:00:00 (UTC). Set the maximum value of year based on the requirements specified in the product manual of the in-use component.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
alarmIndexIndicates the RTC alarm index. For details, see RtcAlarmIndex.
tmIndicates the pointer to the RTC alarm time information. For details, see RtcTime.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcWriteReg()

  1. int32_tRtcWriteReg(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,uint8_t usrDefIndex,uint8_t value )

Description:

Writes the configuration of a custom RTC register based on the register index.

One index corresponds to one byte of the configuration value.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
usrDefIndexIndicates the index of the custom register.
valueIndicates the configuration value to write at the index of the register.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.

RtcWriteTime()

  1. int32_tRtcWriteTime(struct[DevHandle]($api-api-SmartVision-Devices-DevHandle.md)* handle,conststruct[RtcTime]($api-api-SmartVision-Devices-RtcTime.md)* time )

Description:

Writes format-compliant time to the RTC driver.

Note that the RTC start time is 1970/01/01 Thursday 00:00:00 (UTC). Set the maximum value of year based on the requirements specified in the product manual of the in-use component.

Parameters:

Name

Description

handleIndicates the pointer to the RTC device handle, which is obtained via RtcGetHandle.
timeIndicates the pointer to the time information to write. For details, see RtcTime.

Returns:

Returns 0 if the operation is successful; returns a negative value if the operation fails. For details, see HDF_STATUS.