RTC and RAM routines for the Dallas DS1307 clock chip. More...
#include <cfg/os.h>
#include <dev/twif.h>
#include <sys/event.h>
#include <sys/timer.h>
#include <stdlib.h>
#include <string.h>
#include <dev/ds1307rtc.h>
Go to the source code of this file.
Defines | |
#define | I2C_SLA_RTC 0x68 |
Functions | |
int | DS1307RtcReadRegs (uint8_t reg, uint8_t *buff, size_t cnt) |
Read RTC registers. | |
int | DS1307RtcWrite (CONST uint8_t *buff, size_t cnt) |
Write to RTC registers. | |
int | DS1307RtcGetClock (struct _tm *tm) |
Get date and time from an DS1307 hardware clock. | |
int | DS1307RtcSetClock (CONST struct _tm *tm) |
Set the DS1307 hardware clock. | |
int | DS1307RamRead (uint8_t addr, uint8_t *buff, size_t cnt) |
Read contents from DS1307 RAM. | |
int | DS1307RamWrite (uint8_t addr, CONST void *buff, size_t len) |
Store buffer contents in DS1307 RAM. | |
int | DS1307Init (void) |
Initialize the interface to an Dallas DS1307 hardware clock. | |
Variables | |
NUTRTC | rtcDs1307 |
RTC and RAM routines for the Dallas DS1307 clock chip.
* * $Log$ * Revision 1.6 2008/08/11 06:59:42 haraldkipp * BSD types replaced by stdint types (feature request #1282721). * * Revision 1.5 2007/09/11 17:32:30 haraldkipp * Last minute fix (bug #1786271) * * Revision 1.4 2006/10/08 16:39:33 haraldkipp * Corrected range check in DS1307RamRead(). Thanks to Helmut Holbach. * * Revision 1.3 2006/10/05 17:18:49 haraldkipp * Hardware independant RTC layer added. * * Revision 1.2 2006/08/25 13:42:55 olereinhardt * avr-gcc 3.4 does not understand binary representation of numbers, * changed to hex * * Revision 1.1 2006/06/30 22:05:51 christianwelzel * Initial check in. * * *
Definition in file ds1307rtc.c.
#define I2C_SLA_RTC 0x68 |
Definition at line 76 of file ds1307rtc.c.
Referenced by DS1307RamWrite(), DS1307RtcReadRegs(), and DS1307RtcWrite().
Read RTC registers.
reg | The first register to read. |
buff | Pointer to a buffer that receives the register contents. |
cnt | The number of registers to read. |
Definition at line 89 of file ds1307rtc.c.
References I2C_SLA_RTC, NUT_WAIT_INFINITE, and TwMasterTransact().
Referenced by DS1307Init(), DS1307RamRead(), and DS1307RtcGetClock().
int DS1307RtcWrite | ( | CONST uint8_t * | buff, |
size_t | cnt | ||
) |
Write to RTC registers.
buff | This buffer must contain all bytes to be transfered to the RTC chip, including the register address. |
cnt | Number of valid bytes in the buffer. |
Definition at line 110 of file ds1307rtc.c.
References I2C_SLA_RTC, NUT_WAIT_INFINITE, and TwMasterTransact().
Referenced by DS1307Init(), and DS1307RtcSetClock().
int DS1307RtcGetClock | ( | struct _tm * | tm | ) |
Get date and time from an DS1307 hardware clock.
tm | Points to a structure that receives the date and time information. |
Definition at line 126 of file ds1307rtc.c.
References BCD2BIN, DS1307RtcReadRegs(), _tm::tm_hour, _tm::tm_mday, _tm::tm_min, _tm::tm_mon, _tm::tm_sec, _tm::tm_wday, and _tm::tm_year.
int DS1307RtcSetClock | ( | CONST struct _tm * | tm | ) |
Set the DS1307 hardware clock.
tm | Points to a structure which contains the date and time information. |
Definition at line 151 of file ds1307rtc.c.
References BIN2BCD, DS1307RtcWrite(), and memset().
Read contents from DS1307 RAM.
addr | Start location. |
buff | Points to a buffer that receives the contents. |
cnt | Number of bytes to read. |
Definition at line 178 of file ds1307rtc.c.
References DS1307RtcReadRegs().
int DS1307RamWrite | ( | uint8_t | addr, |
CONST void * | buff, | ||
size_t | len | ||
) |
Store buffer contents in DS1307 RAM.
addr | Storage start location. |
buff | Points to a buffer that contains the bytes to store. |
len | Number of valid bytes in the buffer. |
Definition at line 199 of file ds1307rtc.c.
References CONST, free(), I2C_SLA_RTC, malloc(), memcpy(), NUT_WAIT_INFINITE, and TwMasterTransact().
int DS1307Init | ( | void | ) |
Initialize the interface to an Dallas DS1307 hardware clock.
Definition at line 228 of file ds1307rtc.c.
References DS1307RtcReadRegs(), DS1307RtcWrite(), and TwInit().
{ DS1307Init, DS1307RtcGetClock, DS1307RtcSetClock, NULL, NULL, NULL, NULL }
Definition at line 252 of file ds1307rtc.c.