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
Character LCD
SPI
I2C (Wire)
SD Card
SD (File Operations)
Periodic Operation
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_TIMETYPE 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: 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
Sample Program
This program is for setting a time and alarm. Time and alarm notification is output via serial communication and a message is displayed by an alarm after 10 seconds.
#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
}