ds1307.h File Reference

Routines for communicating with the ds1307 real time clock. More...

Include dependency graph for ds1307.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define __ds1307_h   defined
#define ds1307_control_register   0x07
#define ds1307_date_register   0x04
#define ds1307_day_register   0x03
#define ds1307_device   0xD0
#define ds1307_hours_register   0x02
#define ds1307_minutes_register   0x01
#define ds1307_month_register   0x05
#define ds1307_seconds_register   0x00
#define ds1307_year_register   0x06
#define rtc_setup()   rtc_setup_io()

Functions

uns8 rtc_get_config ()
 Get the config register from the ds1307.
uns8 rtc_get_date ()
 Get the date register from the ds1307.
uns8 rtc_get_day ()
 Get the day register from the ds1307.
uns8 rtc_get_hours ()
 Get the decoded hours register from the ds1307.
uns8 rtc_get_minutes ()
 Get the decoded minutes register from the ds1307.
uns8 rtc_get_month ()
 Get the month register from the ds1307.
uns8 rtc_get_seconds ()
 Get the decoded seconds register from the ds1307.
uns8 rtc_get_year ()
 Get the year register from the ds1307.
uns8 rtc_set_config (uns8 config)
 Set the config register in the ds1307.
void rtc_set_date (uns8 date)
 Set the date register from the ds1307.
void rtc_set_day (uns8 day)
 Set the day of the week register from the ds1307.
void rtc_set_hours (uns8 hours)
 Set the hours register in the ds1307.
void rtc_set_minutes (uns16 minutes)
 Set the minutes register from the ds1307.
void rtc_set_month (uns8 month)
 Set the month register in the ds1307.
void rtc_set_seconds (uns8 seconds)
 Set the seconds register in the ds1307.
void rtc_set_year (uns16 year)
 Set the year register from the ds1307.
void rtc_setup_io ()
 Setup ports and pins for use in the ds1307.
void rtc_start_clock ()
 Starts the clock in the ds1307.
void rtc_stop_clock ()
 Stop the clock in the ds1307.

Detailed Description


Define Documentation

#define __ds1307_h   defined
#define ds1307_control_register   0x07

ds1307 control register

#define ds1307_date_register   0x04

ds1307 date in month register

#define ds1307_day_register   0x03

ds1307 day of week register

#define ds1307_device   0xD0

The ds1307 device address

#define ds1307_hours_register   0x02

ds1307 hours register

#define ds1307_minutes_register   0x01

ds1307 minutes register

#define ds1307_month_register   0x05

ds1307 month register

#define ds1307_seconds_register   0x00

ds1307 seconds register

#define ds1307_year_register   0x06

ds1307 year register

 
#define rtc_setup (  )     rtc_setup_io()

Function Documentation

uns8 rtc_get_config (  ) 

Returns the config register from the ds1307. Bit 7 - Out - Value on SQWE pin if not outputting square wave Bit 6 - 0 Bit 5 - 0 Bit 4 - SQWE - Enable square wave output Bit 3 - 0 Bit 2 - 0 Bit 1 - RS1 Bit 0 - RS0

RS1/0 determin the speed of the square wave output. Set to 0/0 for 1 Hz.

00076                        {
00077     return i2c_read_eeprom(ds1307_device, ds1307_control_register);
00078 }

Here is the call graph for this function:

uns8 rtc_get_date (  ) 

Returns the date in month from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range 1 through 28/29/30/31 depending on month

uns8 rtc_get_day (  ) 

Returns the day of the week from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range - 1 through 7

Here is the call graph for this function:

uns8 rtc_get_hours (  ) 

Returns hour from the ds1307. The result is coverted to decimal from BCD and is ready to use. These routines assume the ds1307 is running in 24 hour mode. Range - 0 through 23

00050                      {
00051 
00052 // Always assume it's in 24 hour mode
00053 
00054     return bcd_to_dec(0b00111111 & i2c_read_eeprom(ds1307_device, ds1307_hours_register));
00055 }       

uns8 rtc_get_minutes (  ) 

Returns the number of minutes past the hour from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range - 0 through 59

uns8 rtc_get_month (  ) 

Returns the month of the year from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range 1 through 12

uns8 rtc_get_seconds (  ) 

Returns seconds from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range - 0 through 59

00057                        {
00058     return bcd_to_dec(0b01111111 & i2c_read_eeprom(ds1307_device, ds1307_seconds_register));
00059 }

uns8 rtc_get_year (  ) 

Returns the year from the ds1307. The result is coverted to decimal from BCD and is ready to use. Range 0 through 99

uns8 rtc_set_config ( uns8  config  ) 

Sets the config register in the ds1307.

Bit 7 - Out - Value on SQWE pin if not outputting square wave Bit 6 - 0 Bit 5 - 0 Bit 4 - SQWE - Enable square wave output Bit 3 - 0 Bit 2 - 0 Bit 1 - RS1 Bit 0 - RS0

RS1/0 determin the speed of the square wave output. Set to 0/0 for 1 Hz.

Parameters:
config Value to set the config register to

00080                                   {
00081     i2c_write_eeprom(ds1307_device, ds1307_control_register, config);
00082 }

void rtc_set_date ( uns8  date  ) 

Changes the date in the ds1307.

Parameters:
seconds Value to set date to

void rtc_set_day ( uns8  day  ) 

Changes the day of the week in the ds1307.

Parameters:
seconds Value to set day to

void rtc_set_hours ( uns8  hours  ) 

Changes the hours in the ds1307. Forces the ds1307 into 24 hour mode.

00110                                {
00111     // by doing this we clear the 12/24 flag, making it 24 hour mode
00112         i2c_write_eeprom(ds1307_device, ds1307_hours_register, dec_to_bcd(hours));
00113 }

void rtc_set_minutes ( uns16  minutes  ) 

Changes the minutes in the ds1307.

Parameters:
seconds Value to set minutes to

Here is the call graph for this function:

void rtc_set_month ( uns8  month  ) 

Changes the month in the ds1307.

void rtc_set_seconds ( uns8  seconds  ) 

Changes the seconds in the ds1307.

Parameters:
seconds Value to set seconds to

void rtc_set_year ( uns16  year  ) 

Changes the year in the ds1307.

Here is the call graph for this function:

void rtc_setup_io (  ) 

Calls i2c_setup() to configure ports and pins ready for use

00119                     {
00120     i2c_setup_io();
00121 }

void rtc_start_clock (  ) 

Resume time in the ds1307

void rtc_stop_clock (  ) 

Pauses time in the ds1307


Generated on Fri Aug 19 09:05:12 2011 for Pic Pack Library by  doxygen 1.6.1