Basic Library
Digital I/O
Analog I/O
Advanced I/O
Time
Math
Trigonometry
Random Numbers
Bits and Bytes
Interrupts
Serial Comm.
Standard Library
Servo Motor
Stepping Motor
Liquid Crystal
EEPROM
SPI
I2C (Wire)
SD Card
SD (File Operations)
Ethernet
Ethernet (Server)
Ethernet (Client)
Firmata
Periodic Operation
Power Save
Clock (RTC)
SoftwareSerial
Utility
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 <RLduino78_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 an 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: 0x06Week 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 weekReturns
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
This example shows a program for setting a time and alarm. Time and alarm notification is output via serial communication.
#include <Arduino.h>
#include <RLduino78_RTC.h>
void alarm_handler();
RTC_TIMETYPE t;
void setup()
{
Serial.begin(9600);
int err = rtc_init();
t.year = 13;
t.mon = 2;
t.day = 28;
t.weekday = RTC_WEEK_THURSDAY;
t.hour = 9;
t.min = 40;
t.second = 0;
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 = err = rtc_get_time(&t);
Serial.print(t.year, DEC);Serial.print("/");
Serial.print(t.mon, 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()
{
Serial.println("Alarm comes on!");
}
Flash an LED every 1 second.
#include <Arduino.h>
#include <RLduino78_RTC.h>
#define LED_GREEN 23
void rtcInterrupt1s(){
digitalWrite(LED_GREEN, LOW);
delay(10);
digitalWrite(LED_GREEN, HIGH);
}
void setup(){
digitalWrite(LED_GREEN, HIGH);
pinMode(LED_GREEN, OUTPUT);
rtc_init();
rtc_attach_constant_period_interrupt_handler(rtcInterrupt1s);
rtc_set_constant_period_interrupt_time(RTC_CONSTANT_PERIOD_TIME_1SECOND);
rtc_constant_period_interrupt_on();
}
void loop(){
}