Erriez DS3231 high precision I2C RTC library for Arduino  2.0.0
This is a DS3231 high precision I2C Real Time Clock library for Arduino by Erriez.
Classes | Macros | Enumerations
ErriezDS3231.h File Reference

DS3231 high precision RTC library for Arduino. More...

#include <stdint.h>
#include <time.h>
Include dependency graph for ErriezDS3231.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ErriezDS3231
 DS3231 RTC class. More...
 

Macros

#define DS3231_REG_SECONDS   0x00
 DS3231 registers. More...
 
#define DS3231_REG_MINUTES   0x01
 Minutes register.
 
#define DS3231_REG_HOURS   0x02
 Hours register.
 
#define DS3231_REG_DAY_WEEK   0x03
 Day of the week register.
 
#define DS3231_REG_DAY_MONTH   0x04
 Day of the month register.
 
#define DS3231_REG_MONTH   0x05
 Month register.
 
#define DS3231_REG_YEAR   0x06
 Year register.
 
#define DS3231_REG_ALARM1_SEC   0x07
 Alarm 1 seconds register.
 
#define DS3231_REG_ALARM1_MIN   0x08
 Alarm 1 minutes register.
 
#define DS3231_REG_ALARM1_HOUR   0x09
 Alarm 1 hour register.
 
#define DS3231_REG_ALARM1_DD   0x0A
 Alarm 1 day/date register.
 
#define DS3231_REG_ALARM2_MIN   0x0B
 Alarm 2 seconds register.
 
#define DS3231_REG_ALARM2_HOUR   0x0C
 Alarm 2 hour register.
 
#define DS3231_REG_ALARM2_DD   0x0D
 Alarm 2 day/date register.
 
#define DS3231_REG_CONTROL   0x0E
 Control register.
 
#define DS3231_REG_STATUS   0x0F
 Status register.
 
#define DS3231_REG_AGING_OFFSET   0x10
 Aging offset register.
 
#define DS3231_REG_TEMP_MSB   0x11
 Temperature MSB register.
 
#define DS3231_REG_TEMP_LSB   0x12
 Temperature LSB register.
 
#define DS3231_NUM_REGS   19
 DS3231 number of registers. More...
 
#define DS3231_HOUR_12H_24H   6
 DS3231 register bit defines. More...
 
#define DS3231_HOUR_AM_PM   5
 AM/PM.
 
#define DS3231_MONTH_CENTURY   7
 Century.
 
#define DS3231_CTRL_EOSC   7
 Enable oscillator.
 
#define DS3231_CTRL_BBSQW   6
 Battery-Backed Square-Wave Enable.
 
#define DS3231_CTRL_CONV   5
 Start temperature conversion.
 
#define DS3231_CTRL_RS2   4
 Square wave rate-select 2.
 
#define DS3231_CTRL_RS1   3
 Square wave rate-select 1.
 
#define DS3231_CTRL_INTCN   2
 Interrupt control.
 
#define DS3231_CTRL_A2IE   1
 Alarm 2 interrupt enable.
 
#define DS3231_CTRL_A1IE   0
 Alarm 1 interrupt enable.
 
#define DS3231_STAT_OSF   7
 Oscillator Stop Flag.
 
#define DS3231_STAT_EN32KHZ   3
 Enable 32kHz clock output.
 
#define DS3231_STAT_BSY   2
 Temperature conversion busy flag.
 
#define DS3231_STAT_A2F   1
 Alarm 2 status flag.
 
#define DS3231_STAT_A1F   0
 Alarm 1 status flag.
 
#define DS3231_A1M1   7
 Alarm 1 bit 7 seconds register.
 
#define DS3231_A1M2   7
 Alarm 1 bit 7 minutes register.
 
#define DS3231_A1M3   7
 Alarm 1 bit 7 hours register.
 
#define DS3231_A1M4   7
 Alarm 1 bit 7 day/date register.
 
#define DS3231_A2M2   7
 Alarm 2 bit 7 minutes register.
 
#define DS3231_A2M3   7
 Alarm 2 bit 7 hours register.
 
#define DS3231_A2M4   7
 Alarm 2 bit 7 day/date register.
 
#define DS3231_DYDT   6
 Alarm 2 bit 6.
 
#define DS3231_ADDR   (0xD0 >> 1)
 DS3231 I2C 7-bit address.
 
#define SECONDS_FROM_1970_TO_2000   946684800
 Number of seconds between year 1970 and 2000.
 

Enumerations

enum  AlarmId { Alarm1 = 1, Alarm2 = 2 }
 Alarm ID. More...
 
enum  Alarm1Type {
  Alarm1EverySecond = 0x0F, Alarm1MatchSeconds = 0x0E, Alarm1MatchMinutes = 0x0C, Alarm1MatchHours = 0x08,
  Alarm1MatchDay = 0x10, Alarm1MatchDate = 0x00
}
 Alarm 1 types enum. More...
 
enum  Alarm2Type {
  Alarm2EveryMinute = 0x0E, Alarm2MatchMinutes = 0x0C, Alarm2MatchHours = 0x08, Alarm2MatchDay = 0x10,
  Alarm2MatchDate = 0x00
}
 Alarm 2 types enum. More...
 
enum  SquareWave {
  SquareWaveDisable = (1 << DS3231_CTRL_INTCN), SquareWave1Hz = ((0 << DS3231_CTRL_RS2) | (0 << DS3231_CTRL_RS1)), SquareWave1024Hz = ((0 << DS3231_CTRL_RS2) | (1 << DS3231_CTRL_RS1)), SquareWave4096Hz = ((1 << DS3231_CTRL_RS2) | (0 << DS3231_CTRL_RS1)),
  SquareWave8192Hz = ((1 << DS3231_CTRL_RS2) | (1 << DS3231_CTRL_RS1))
}
 Squarewave enum. More...
 

Detailed Description

DS3231 high precision RTC library for Arduino.

Source: https://github.com/Erriez/ErriezDS3231 Documentation: https://erriez.github.io/ErriezDS3231

Definition in file ErriezDS3231.h.

Macro Definition Documentation

◆ DS3231_HOUR_12H_24H

#define DS3231_HOUR_12H_24H   6

DS3231 register bit defines.

12 or 24 hour mode

Definition at line 66 of file ErriezDS3231.h.

◆ DS3231_NUM_REGS

#define DS3231_NUM_REGS   19

DS3231 number of registers.

19 RTC register: 0x00..0x12

Definition at line 63 of file ErriezDS3231.h.

◆ DS3231_REG_SECONDS

#define DS3231_REG_SECONDS   0x00

DS3231 registers.

Seconds register

Definition at line 40 of file ErriezDS3231.h.

Enumeration Type Documentation

◆ Alarm1Type

enum Alarm1Type

Alarm 1 types enum.

Enumerator
Alarm1EverySecond 

Alarm once per second.

Alarm1MatchSeconds 

Alarm when seconds match.

Alarm1MatchMinutes 

Alarm when minutes and seconds match.

Alarm1MatchHours 

Alarm when hours, minutes, and seconds match.

Alarm1MatchDay 

Alarm when date, hours, minutes, and seconds match.

Alarm1MatchDate 

Alarm when day, hours, minutes, and seconds match.

Definition at line 112 of file ErriezDS3231.h.

◆ Alarm2Type

enum Alarm2Type

Alarm 2 types enum.

Enumerator
Alarm2EveryMinute 

Alarm once per minute (00 seconds of every minute)

Alarm2MatchMinutes 

Alarm when minutes match.

Alarm2MatchHours 

Alarm when hours and minutes match.

Alarm2MatchDay 

Alarm when date, hours, and minutes match.

Alarm2MatchDate 

Alarm when day, hours, and minutes match.

Definition at line 125 of file ErriezDS3231.h.

◆ AlarmId

enum AlarmId

Alarm ID.

Enumerator
Alarm1 

Alarm ID 1.

Alarm2 

Alarm ID 2.

Definition at line 104 of file ErriezDS3231.h.

◆ SquareWave

enum SquareWave

Squarewave enum.

Enumerator
SquareWaveDisable 

SQW disable.

SquareWave1Hz 

SQW 1Hz.

SquareWave1024Hz 

SQW 1024Hz.

SquareWave4096Hz 

SQW 4096Hz.

SquareWave8192Hz 

SQW 8192Hz.

Definition at line 137 of file ErriezDS3231.h.