LED clock
 All Files Functions Variables Macros Groups
Functions | Variables
rtc_ds1307.c File Reference

library to communicate with the Maxim DS1307 I2C RTC IC (code) More...

Go to the source code of this file.

Functions

void rtc_ds1307_setup (void)
 setup communication with RTC IC configure the I2C port defined in the sources
 
static bool rtc_ds1307_read_memory (uint8_t addr, uint8_t *data, size_t len)
 read memory from RTC IC More...
 
bool rtc_ds1307_oscillator_disabled (void)
 verify if oscillator is disabled More...
 
uint16_t rtc_ds1307_read_square_wave (void)
 read square wave output frequency (in Hz) More...
 
uint8_t rtc_ds1307_read_seconds (void)
 read seconds from RTC IC More...
 
uint8_t rtc_ds1307_read_minutes (void)
 read minutes from RTC IC More...
 
uint8_t rtc_ds1307_read_hours (void)
 read hours from RTC IC More...
 
uint8_t rtc_ds1307_read_day (void)
 read day from RTC IC More...
 
uint8_t rtc_ds1307_read_date (void)
 read date from RTC IC More...
 
uint8_t rtc_ds1307_read_month (void)
 read month from RTC IC More...
 
uint8_t rtc_ds1307_read_year (void)
 read year from RTC IC More...
 
uint8_t * rtc_ds1307_read_time (void)
 read time from RTC IC More...
 
static bool rtc_ds1307_write_memory (uint8_t addr, uint8_t *data, size_t len)
 write memory into RTC IC More...
 
bool rtc_ds1307_oscillator_disable (void)
 disable RTC IC oscillator More...
 
bool rtc_ds1307_oscillator_enable (void)
 enable RTC IC oscillator More...
 
bool rtc_ds1307_write_square_wave (uint16_t frequency)
 write square wave output frequency (in Hz) More...
 
bool rtc_ds1307_write_seconds (uint8_t seconds)
 write seconds into RTC IC More...
 
bool rtc_ds1307_write_minutes (uint8_t minutes)
 write minutes into RTC IC More...
 
bool rtc_ds1307_write_hours (uint8_t hours)
 write hours into RTC IC More...
 
bool rtc_ds1307_write_day (uint8_t day)
 write day into RTC IC More...
 
bool rtc_ds1307_write_date (uint8_t date)
 write date into RTC IC More...
 
bool rtc_ds1307_write_month (uint8_t month)
 write month into RTC IC More...
 
bool rtc_ds1307_write_year (uint8_t year)
 write year into RTC IC More...
 
bool rtc_ds1307_write_time (uint8_t seconds, uint8_t minutes, uint8_t hours, uint8_t day, uint8_t date, uint8_t month, uint8_t year)
 write time into RTC IC More...
 
void RTC_DS1307_SQUARE_WAVE_TIMER_ISR (void)
 timer interrupt service routine called when number of ticks have been received
 

Variables

volatile uint32_t rtc_ds1307_ticks = 0
 increment on SQUARE_WAVE_TICS square wave ticks
 
volatile bool rtc_ds1307_tick_flag = false
 set on SQUARE_WAVE_TICS square wave ticks
 

Detailed Description

library to communicate with the Maxim DS1307 I2C RTC IC (code)

Author
King Kévin kingk.nosp@m.evin.nosp@m.@cuvo.nosp@m.odoo.nosp@m..info
Date
2016
Note
user RAM is not handled
peripherals used: I2C I2C peripheral used to communication with the DS1307 RTC IC, GPIO & timer timer peripheral used to count timer based on RTC IC square wave output

Definition in file rtc_ds1307.c.

Function Documentation

bool rtc_ds1307_oscillator_disable ( void  )

disable RTC IC oscillator

Returns
if disabling oscillator succeeded

Definition at line 285 of file rtc_ds1307.c.

bool rtc_ds1307_oscillator_disabled ( void  )

verify if oscillator is disabled

Returns
if oscillator is disabled

Definition at line 133 of file rtc_ds1307.c.

bool rtc_ds1307_oscillator_enable ( void  )

enable RTC IC oscillator

Returns
if enabling oscillator succeeded

Definition at line 293 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_date ( void  )

read date from RTC IC

Returns
day of the month (1-31) of the current time

Definition at line 198 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_day ( void  )

read day from RTC IC

Returns
day of the week (1-7, 1 is Sunday) of the current time, 1 being Sunday

Definition at line 189 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_hours ( void  )

read hours from RTC IC

Returns
number of hours (0-23) of the current time

Definition at line 172 of file rtc_ds1307.c.

static bool rtc_ds1307_read_memory ( uint8_t  addr,
uint8_t *  data,
size_t  len 
)
static

read memory from RTC IC

Parameters
[in]addrstart address for memory to read
[out]databuffer to store read memory
[in]lennumber of byte to read from the memory
Returns
if read succeeded

Definition at line 89 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_minutes ( void  )

read minutes from RTC IC

Returns
number of minutes (0-59) of the current time

Definition at line 163 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_month ( void  )

read month from RTC IC

Returns
month of the year (1-12) of the current time

Definition at line 207 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_seconds ( void  )

read seconds from RTC IC

Returns
number of seconds (0-59) of the current time

Definition at line 154 of file rtc_ds1307.c.

uint16_t rtc_ds1307_read_square_wave ( void  )

read square wave output frequency (in Hz)

Returns
square wave output frequency in Hz, 0 if disabled

Definition at line 140 of file rtc_ds1307.c.

uint8_t* rtc_ds1307_read_time ( void  )

read time from RTC IC

Returns
array of {seconds, minutes, hours, day, date, month, year} as defined above

Definition at line 224 of file rtc_ds1307.c.

uint8_t rtc_ds1307_read_year ( void  )

read year from RTC IC

Returns
year of the century (00-99) of the current time

Definition at line 216 of file rtc_ds1307.c.

bool rtc_ds1307_write_date ( uint8_t  date)

write date into RTC IC

Parameters
[in]dateday of the month (1-31)
Returns
if write succeeded

Definition at line 370 of file rtc_ds1307.c.

bool rtc_ds1307_write_day ( uint8_t  day)

write day into RTC IC

Parameters
[in]dayday of the week (1-7, 1 is Sunday)
Returns
if write succeeded

Definition at line 360 of file rtc_ds1307.c.

bool rtc_ds1307_write_hours ( uint8_t  hours)

write hours into RTC IC

Parameters
[in]hoursnumber of hours (0-23)
Returns
if write succeeded

Definition at line 350 of file rtc_ds1307.c.

static bool rtc_ds1307_write_memory ( uint8_t  addr,
uint8_t *  data,
size_t  len 
)
static

write memory into RTC IC

Parameters
[in]addrstart address for memory to be written
[in]databuffer to for memory to be written
[in]lennumber of byte to write into the memory
Returns
if write succeeded

Definition at line 254 of file rtc_ds1307.c.

bool rtc_ds1307_write_minutes ( uint8_t  minutes)

write minutes into RTC IC

Parameters
[in]minutesnumber of minutes (0-59)
Returns
if write succeeded

Definition at line 340 of file rtc_ds1307.c.

bool rtc_ds1307_write_month ( uint8_t  month)

write month into RTC IC

Parameters
[in]monthmonth of the year (1-12)
Returns
if write succeeded

Definition at line 380 of file rtc_ds1307.c.

bool rtc_ds1307_write_seconds ( uint8_t  seconds)

write seconds into RTC IC

Parameters
[in]secondsnumber of seconds (0-59)
Returns
if write succeeded

Definition at line 326 of file rtc_ds1307.c.

bool rtc_ds1307_write_square_wave ( uint16_t  frequency)

write square wave output frequency (in Hz)

Parameters
[in]frequencysquare wave output frequency in Hz (0 to disable, 1, 4096, 8192, 32768)
Returns
if write succeeded

Definition at line 301 of file rtc_ds1307.c.

bool rtc_ds1307_write_time ( uint8_t  seconds,
uint8_t  minutes,
uint8_t  hours,
uint8_t  day,
uint8_t  date,
uint8_t  month,
uint8_t  year 
)

write time into RTC IC

Parameters
[in]secondsnumber of seconds (0-59)
[in]minutesnumber of minutes (0-59)
[in]hoursnumber of hours (0-23)
[in]dayday of the week (1-7, 1 is Sunday)
[in]dateday of the month (1-31)
[in]monthmonth of the year (1-12)
[in]yearyear of the century (00-99)
Returns
if write succeeded

Definition at line 400 of file rtc_ds1307.c.

bool rtc_ds1307_write_year ( uint8_t  year)

write year into RTC IC

Parameters
[in]yearyear of the century (00-99)
Returns
if write succeeded

Definition at line 390 of file rtc_ds1307.c.