Skip to main content

Real Time Clock (RTC)

Real Time Clock (RTC)

This library allows users to get a clock after setting the year, month, date, hour, minutes, and seconds. The specified function can be called by setting the alarm feature. To use this library, describe #include <RTC.h>

rtc_init

Description
Initialize RTC.
Syntax
int rtc_init()
Parameters
None
Returns
0: False, 1: Success, 2: Already initialized

rtc_deinit

Description
Stop RTC.
Syntax
int rtc_deinit()
Parameters
None
Returns
0: False, 1: Success

rtc_set_time

Description
Set a start time.
Syntax
int rtc_set_time(RTC_TIMETYPE *time)
Parameters
time: Specify the RTC_TIMETYPE structure for setting a time(Note)
Returns
0: False, 1: Success
Note
Refer to the sample program for setting a time.

rtc_get_time

Description
Get a current time
Syntax
int rtc_get_time(RTC_TIMETYPE *time)
Parameters
time: Specify the RTC_TIMETYP structure for storing a time.
Returns
0: False, 1: Success

rtc_attach_alarm_handler

Description
Register a function when an alarm occurs
Syntax
rtc_attach_alarm_handler(void(*)(void) function)
Parameters
function: Function to be called when a alarm occurs.
Returns
None

rtc_set_alarm_time

Description
Set an alarm time.
Syntax
int rtc_set_alarm_time (int hour, int min, int week_flag)
Parameters
hour: Hour
min: Minute
week_flag: Week(Specify multiple flags by using OR)
Returns
0: False, 1: Success

rtc_alarm_on

Description
Set alarm on.
Syntax
rtc_alarm_on()
Parameters
None
Returns
None

rtc_alarm_off

Description
Set alarm off.
Syntax
rtc_alarm_off()
Parameters
None
Returns
None

Macro Definition

Week for Setting Time
RTC_WEEK_SUNDAY: 0x00
RTC_WEEK_MONDAY: 0x01
RTC_WEEK_TUESDAY: 0x02
RTC_WEEK_WEDNESDAY: 0x03
RTC_WEEK_THURSDAY: 0x04
RTC_WEEK_FRIDAY: 0x05
RTC_WEEK_SATURDAY: 0x06
Week for Setting Alarm
RTC_ALARM_SUNDAY: 0x01
RTC_ALARM_MONDAY: 0x02
RTC_ALARM_TUESDAY: 0x04
RTC_ALARM_WEDNESDAY: 0x08
RTC_ALARM_THURSDAY: 0x10
RTC_ALARM_FRIDAY: 0x20
RTC_ALARM_SATURDAY: 0x40
RTC_ALARM_EVERYDAY: All of the above OR

rtc_attach_constant_period_interrupt_handler

Description
Register a function that operates periodically.
Syntax
rtc_attach_constant_period_interrupt_handler(function)
Parameters
function: A function to be called periodically
Returns
None

rtc_set_constant_period_interrupt_time

Description
Specify the periodic interval.
Syntax
int rtc_set_constant_period_interrupt_time(period);
Parameters
period:
RTC_CONSTANT_PERIOD_TIME_NONE : No period
RTC_CONSTANT_PERIOD_TIME_HALFSECOND : 0.5 sec
RTC_CONSTANT_PERIOD_TIME_1SECOND : 1 sec(default)
RTC_CONSTANT_PERIOD_TIME_1MINUTE : 1 min
RTC_CONSTANT_PERIOD_TIME_1HOUR : 1 hour
RTC_CONSTANT_PERIOD_TIME_1DAY : 1 day
RTC_CONSTANT_PERIOD_TIME_1MONTH : 1 week
Returns
None

rtc_constant_period_interrupt_on

Description
Set a periodic function on.
Syntax
rtc_constant_period_interrupt_on()
Parameters
None
Returns
None

rtc_constant_period_interrupt_off

Description
Set a periodic function off.
Syntax
rtc_constant_period_interrupt_off()
Parameters
None
Returns
None

Example

Program for setting a time and alarm. Time and alarm notification is output via serial communication.


#include <Arduino.h>
#include <RTC.h>
 
void alarm_handler();
RTC_TIMETYPE t;
 
void setup()
{
  Serial.begin(9600);
  pinMode(PIN_LED0, OUTPUT); //blue led for alarm
  digitalWrite(PIN_LED0, HIGH); //turn off
  int err = rtc_init();
 
  t.year    = 2016;
  t.mon     = 3;
  t.day     = 22;
  t.weekday = RTC_WEEK_TUESDAY;
  t.hour    = 9;
  t.min     = 20;
  t.second  = 50;
 
  err = rtc_set_time(&t);
  rtc_attach_alarm_handler(alarm_handler);
  err = rtc_set_alarm_time(t.hour, t.min + 1);
 
}
 
void loop()
{
  int err;
  err = rtc_get_time(&t);
 
  Serial.print(t.year, DEC);Serial.print("/");
  Serial.print(t.mon, DEC); Serial.print("/");
  Serial.print(t.day, DEC); Serial.print(" ");
  Serial.print(t.hour, DEC); Serial.print(":");
  Serial.print(t.min, DEC); Serial.print(":");
  Serial.println(t.second, DEC);
 
  delay(500);
 
}
 
void alarm_handler()
{
  digitalWrite(PIN_LED0, LOW);//blue led for alarm
 
}

Support

Support Communities

Support Communities

Get quick technical support online from Renesas Engineering Community technical staff.
Browse Articles

Knowledge Base

Browse our knowledge base for helpful articles, FAQs, and other useful resources.
Submit a Ticket

Submit a Ticket

Need to ask a technical question or share confidential information?