See Quickstart guide for SAM RTC driver.
The RTC provides a full binary-coded decimal (BCD) clock that includes century (19/20), year (with leap years), month, date, day, hour, minute and second.
Modules | |
Related Project(s) | |
In this section you can find all the projects related to the Real-Time Clock (RTC). | |
Quick Start Guide(s) | |
In this section you can find a list of all Quick Start guides related to the Real-Time Clock (RTC). | |
Macros | |
#define | BCD_FACTOR 10 |
#define | BCD_MASK 0xfu |
#define | BCD_SHIFT 4 |
#define | RTC_WP_KEY (0x525443) |
Functions | |
void | rtc_clear_date_alarm (Rtc *p_rtc) |
Clear the RTC date alarm setting. More... | |
void | rtc_clear_status (Rtc *p_rtc, uint32_t ul_clear) |
Set the RTC SCCR to clear status bits. More... | |
void | rtc_clear_time_alarm (Rtc *p_rtc) |
Clear the RTC time alarm setting. More... | |
void | rtc_disable_interrupt (Rtc *p_rtc, uint32_t ul_sources) |
Disable RTC interrupts. More... | |
void | rtc_enable_interrupt (Rtc *p_rtc, uint32_t ul_sources) |
Enable RTC interrupts. More... | |
uint32_t | rtc_get_calendar_mode (Rtc *p_rtc) |
Get the RTC calendar mode. More... | |
void | rtc_get_date (Rtc *p_rtc, uint32_t *pul_year, uint32_t *pul_month, uint32_t *pul_day, uint32_t *pul_week) |
Get the RTC date value. More... | |
uint32_t | rtc_get_hour_mode (Rtc *p_rtc) |
Get the RTC hour mode. More... | |
uint32_t | rtc_get_interrupt_mask (Rtc *p_rtc) |
Read RTC interrupt mask. More... | |
uint32_t | rtc_get_milliseconds (Rtc *p_rtc) |
Get the RTC milliseconds value. More... | |
uint32_t | rtc_get_status (Rtc *p_rtc) |
Get the RTC status. More... | |
void | rtc_get_tamper_date (Rtc *p_rtc, uint32_t *pul_year, uint32_t *pul_month, uint32_t *pul_day, uint32_t *pul_week, uint8_t reg_num) |
Get the RTC tamper date. More... | |
uint32_t | rtc_get_tamper_event_counter (Rtc *p_rtc) |
Get the RTC tamper event counter. More... | |
uint32_t | rtc_get_tamper_source (Rtc *p_rtc, uint8_t reg_num) |
Get the RTC tamper source. More... | |
void | rtc_get_tamper_time (Rtc *p_rtc, uint32_t *pul_hour, uint32_t *pul_minute, uint32_t *pul_second, uint8_t reg_num) |
Get the RTC tamper time value. More... | |
void | rtc_get_time (Rtc *p_rtc, uint32_t *pul_hour, uint32_t *pul_minute, uint32_t *pul_second) |
Get the RTC time value. More... | |
uint32_t | rtc_get_valid_entry (Rtc *p_rtc) |
Get the RTC valid entry. More... | |
bool | rtc_is_tamper_occur_in_backup_mode (Rtc *p_rtc, uint8_t reg_num) |
Check the system is in backup mode when RTC tamper event happen. More... | |
void | rtc_set_calendar_event (Rtc *p_rtc, uint32_t ul_selection) |
Set the RTC calendar event selection. More... | |
void | rtc_set_calendar_mode (Rtc *p_rtc, uint32_t ul_mode) |
Set the RTC calendar mode. More... | |
void | rtc_set_calibration (Rtc *p_rtc, uint32_t ul_direction_ppm, uint32_t ul_correction, uint32_t ul_range_ppm) |
Set the RTC calibration. More... | |
uint32_t | rtc_set_date (Rtc *p_rtc, uint32_t ul_year, uint32_t ul_month, uint32_t ul_day, uint32_t ul_week) |
Set the RTC date. More... | |
uint32_t | rtc_set_date_alarm (Rtc *p_rtc, uint32_t ul_month_flag, uint32_t ul_month, uint32_t ul_day_flag, uint32_t ul_day) |
Set the RTC alarm date value. More... | |
void | rtc_set_hour_mode (Rtc *p_rtc, uint32_t ul_mode) |
Set the RTC hour mode. More... | |
void | rtc_set_pulse_parameter (Rtc *p_rtc, uint32_t ul_time_high, uint32_t ul_period) |
Set the pulse output waveform parameters. More... | |
uint32_t | rtc_set_time (Rtc *p_rtc, uint32_t ul_hour, uint32_t ul_minute, uint32_t ul_second) |
Set the RTC time value. More... | |
uint32_t | rtc_set_time_alarm (Rtc *p_rtc, uint32_t ul_hour_flag, uint32_t ul_hour, uint32_t ul_minute_flag, uint32_t ul_minute, uint32_t ul_second_flag, uint32_t ul_second) |
Set the RTC alarm time value. More... | |
void | rtc_set_time_event (Rtc *p_rtc, uint32_t ul_selection) |
Set the RTC time event selection. More... | |
void | rtc_set_waveform (Rtc *p_rtc, uint32_t ul_channel, uint32_t ul_value) |
Set the RTC output waveform. More... | |
void | rtc_set_writeprotect (Rtc *p_rtc, uint32_t ul_enable) |
Enable or disable write protection of RTC registers. More... | |
#define BCD_FACTOR 10 |
#define BCD_MASK 0xfu |
Referenced by rtc_get_date(), rtc_get_tamper_date(), rtc_get_tamper_time(), and rtc_get_time().
#define BCD_SHIFT 4 |
#define RTC_WP_KEY (0x525443) |
Referenced by rtc_set_writeprotect().
void rtc_clear_date_alarm | ( | Rtc * | p_rtc | ) |
void rtc_clear_status | ( | Rtc * | p_rtc, |
uint32_t | ul_clear | ||
) |
Set the RTC SCCR to clear status bits.
p_rtc | Pointer to an RTC instance. |
ul_clear | Some flag bits which will be cleared. |
Referenced by RTC_Handler().
void rtc_clear_time_alarm | ( | Rtc * | p_rtc | ) |
void rtc_disable_interrupt | ( | Rtc * | p_rtc, |
uint32_t | ul_sources | ||
) |
Disable RTC interrupts.
p_rtc | Pointer to an RTC instance. |
ul_sources | Interrupts to be disabled. |
Referenced by RTC_Handler().
void rtc_enable_interrupt | ( | Rtc * | p_rtc, |
uint32_t | ul_sources | ||
) |
Enable RTC interrupts.
p_rtc | Pointer to an RTC instance. |
ul_sources | Interrupts to be enabled. |
Referenced by main(), and RTC_Handler().
uint32_t rtc_get_calendar_mode | ( | Rtc * | p_rtc | ) |
Get the RTC calendar mode.
p_rtc | Pointer to an RTC instance. |
void rtc_get_date | ( | Rtc * | p_rtc, |
uint32_t * | pul_year, | ||
uint32_t * | pul_month, | ||
uint32_t * | pul_day, | ||
uint32_t * | pul_week | ||
) |
Get the RTC date value.
p_rtc | Pointer to an RTC instance. |
pul_year | Current year. |
pul_month | Current month. |
pul_day | Current day. |
pul_week | Current day in current week. |
References BCD_FACTOR, BCD_MASK, and BCD_SHIFT.
Referenced by get_fattime(), and refresh_display().
uint32_t rtc_get_hour_mode | ( | Rtc * | p_rtc | ) |
Get the RTC hour mode.
p_rtc | Pointer to an RTC instance. |
uint32_t rtc_get_interrupt_mask | ( | Rtc * | p_rtc | ) |
Read RTC interrupt mask.
p_rtc | Pointer to an RTC instance. |
uint32_t rtc_get_milliseconds | ( | Rtc * | p_rtc | ) |
Get the RTC milliseconds value.
p_rtc | Pointer to an RTC instance. |
uint32_t rtc_get_status | ( | Rtc * | p_rtc | ) |
Get the RTC status.
p_rtc | Pointer to an RTC instance. |
Referenced by RTC_Handler().
void rtc_get_tamper_date | ( | Rtc * | p_rtc, |
uint32_t * | pul_year, | ||
uint32_t * | pul_month, | ||
uint32_t * | pul_day, | ||
uint32_t * | pul_week, | ||
uint8_t | reg_num | ||
) |
Get the RTC tamper date.
p_rtc | Pointer to an RTC instance. |
pul_year | Current year. |
pul_month | Current month. |
pul_day | Current day. |
pul_week | Current day in current week. |
reg_num | Current tamper register set number. |
References BCD_FACTOR, BCD_MASK, and BCD_SHIFT.
uint32_t rtc_get_tamper_event_counter | ( | Rtc * | p_rtc | ) |
Get the RTC tamper event counter.
p_rtc | Pointer to an RTC instance. |
uint32_t rtc_get_tamper_source | ( | Rtc * | p_rtc, |
uint8_t | reg_num | ||
) |
Get the RTC tamper source.
p_rtc | Pointer to an RTC instance. |
reg_num | Current tamper register set number. |
void rtc_get_tamper_time | ( | Rtc * | p_rtc, |
uint32_t * | pul_hour, | ||
uint32_t * | pul_minute, | ||
uint32_t * | pul_second, | ||
uint8_t | reg_num | ||
) |
Get the RTC tamper time value.
p_rtc | Pointer to an RTC instance. |
pul_hour | Current hour, 24-hour mode. |
pul_minute | Current minute. |
pul_second | Current second. |
reg_num | Current tamper register set number. |
References BCD_FACTOR, BCD_MASK, and BCD_SHIFT.
void rtc_get_time | ( | Rtc * | p_rtc, |
uint32_t * | pul_hour, | ||
uint32_t * | pul_minute, | ||
uint32_t * | pul_second | ||
) |
Get the RTC time value.
p_rtc | Pointer to an RTC instance. |
pul_hour | Current hour, 24-hour mode. |
pul_minute | Current minute. |
pul_second | Current second. |
References BCD_FACTOR, BCD_MASK, and BCD_SHIFT.
Referenced by get_fattime(), and refresh_display().
uint32_t rtc_get_valid_entry | ( | Rtc * | p_rtc | ) |
Get the RTC valid entry.
p_rtc | Pointer to an RTC instance. |
bool rtc_is_tamper_occur_in_backup_mode | ( | Rtc * | p_rtc, |
uint8_t | reg_num | ||
) |
Check the system is in backup mode when RTC tamper event happen.
p_rtc | Pointer to an RTC instance. |
reg_num | Current tamper register set number. |
void rtc_set_calendar_event | ( | Rtc * | p_rtc, |
uint32_t | ul_selection | ||
) |
Set the RTC calendar event selection.
p_rtc | Pointer to an RTC instance. |
ul_selection | Calendar event selection to be enabled.. |
void rtc_set_calendar_mode | ( | Rtc * | p_rtc, |
uint32_t | ul_mode | ||
) |
Set the RTC calendar mode.
p_rtc | Pointer to an RTC instance. |
ul_mode | 1 for Persian mode,0 for Gregorian mode. |
void rtc_set_calibration | ( | Rtc * | p_rtc, |
uint32_t | ul_direction_ppm, | ||
uint32_t | ul_correction, | ||
uint32_t | ul_range_ppm | ||
) |
Set the RTC calibration.
p_rtc | Pointer to an RTC instance. |
ul_direction_ppm | Positive/negative correction. |
ul_correction | Correction value. |
ul_range_ppm | Low/high range correction. |
uint32_t rtc_set_date | ( | Rtc * | p_rtc, |
uint32_t | ul_year, | ||
uint32_t | ul_month, | ||
uint32_t | ul_day, | ||
uint32_t | ul_week | ||
) |
Set the RTC date.
p_rtc | Pointer to an RTC instance. |
ul_year | Current year. |
ul_month | Current month. |
ul_day | Current day. |
ul_week | Current day in current week. |
References BCD_FACTOR, and BCD_SHIFT.
Referenced by main().
uint32_t rtc_set_date_alarm | ( | Rtc * | p_rtc, |
uint32_t | ul_month_flag, | ||
uint32_t | ul_month, | ||
uint32_t | ul_day_flag, | ||
uint32_t | ul_day | ||
) |
Set the RTC alarm date value.
p_rtc | Pointer to an RTC instance. |
ul_month_flag | 1 for setting, 0 for not setting. |
ul_month | Alarm month value. |
ul_day_flag | 1 for setting, 0 for not setting. |
ul_day | Alarm day value. |
References BCD_FACTOR, and BCD_SHIFT.
Referenced by main().
void rtc_set_hour_mode | ( | Rtc * | p_rtc, |
uint32_t | ul_mode | ||
) |
Set the RTC hour mode.
p_rtc | Pointer to an RTC instance. |
ul_mode | 1 for 12-hour mode, 0 for 24-hour mode. |
Referenced by disk_initialize(), and main().
void rtc_set_pulse_parameter | ( | Rtc * | p_rtc, |
uint32_t | ul_time_high, | ||
uint32_t | ul_period | ||
) |
Set the pulse output waveform parameters.
p_rtc | Pointer to an RTC instance. |
ul_time_high | High duration of the output pulse. |
ul_period | Period of the output pulse. |
uint32_t rtc_set_time | ( | Rtc * | p_rtc, |
uint32_t | ul_hour, | ||
uint32_t | ul_minute, | ||
uint32_t | ul_second | ||
) |
Set the RTC time value.
p_rtc | Pointer to an RTC instance. |
ul_hour | Current hour, 24-hour mode. |
ul_minute | Current minute. |
ul_second | Current second. |
References BCD_FACTOR, and BCD_SHIFT.
Referenced by main().
uint32_t rtc_set_time_alarm | ( | Rtc * | p_rtc, |
uint32_t | ul_hour_flag, | ||
uint32_t | ul_hour, | ||
uint32_t | ul_minute_flag, | ||
uint32_t | ul_minute, | ||
uint32_t | ul_second_flag, | ||
uint32_t | ul_second | ||
) |
Set the RTC alarm time value.
p_rtc | Pointer to an RTC instance. |
ul_hour_flag | 1 for setting, 0 for not setting. |
ul_hour | Alarm hour value, 24-hour mode. |
ul_minute_flag | 1 for setting, 0 for not setting. |
ul_minute | Alarm minute value. |
ul_second_flag | 1 for setting, 0 for not setting. |
ul_second | Alarm second value. |
References BCD_FACTOR, and BCD_SHIFT.
Referenced by main().
void rtc_set_time_event | ( | Rtc * | p_rtc, |
uint32_t | ul_selection | ||
) |
Set the RTC time event selection.
p_rtc | Pointer to an RTC instance. |
ul_selection | Time event selection to be enabled. |
void rtc_set_waveform | ( | Rtc * | p_rtc, |
uint32_t | ul_channel, | ||
uint32_t | ul_value | ||
) |
Set the RTC output waveform.
p_rtc | Pointer to an RTC instance. |
ul_channel | Output channel selection. |
ul_value | Output source selection value. |
Referenced by main().
void rtc_set_writeprotect | ( | Rtc * | p_rtc, |
uint32_t | ul_enable | ||
) |
Enable or disable write protection of RTC registers.
p_rtc | Pointer to an RTC instance. |
ul_enable | 1 to enable, 0 to disable. |
References RTC_WP_KEY.