Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

x12rtc.c File Reference


Detailed Description

RTC and EEPROM routines for the Intersil X12xx clock chips.

 *
 * $Log: x12rtc.c,v $
 * Revision 1.4  2006/10/05 17:21:53  haraldkipp
 * Hardware specific functions marked deprecated.
 * Hardcoded register addresses and values replaced by macros.
 *
 * Revision 1.3  2006/03/02 19:57:34  haraldkipp
 * ICCARM insists on a (void *) typecast for the second parameter of memcpy().
 *
 * Revision 1.2  2006/01/19 18:41:34  haraldkipp
 * Year translation was completely broken. Fixed.
 *
 * Revision 1.1  2005/10/24 10:21:57  haraldkipp
 * Initial check in.
 *
 *
 * 


Defines

#define I2C_SLA_RTC   0x6F
#define I2C_SLA_EEPROM   0x57
#define EEPROM_PAGE_SIZE   64

Functions

int X12RtcReadRegs (u_char reg, u_char *buff, size_t cnt)
 Read RTC registers.
int X12RtcWrite (int nv, CONST u_char *buff, size_t cnt)
 Write to RTC registers.
int X12RtcGetClock (struct _tm *tm)
 Get date and time from an X12xx hardware clock.
int X12RtcSetClock (CONST struct _tm *tm)
 Set an X12xx hardware clock.
int X12RtcGetAlarm (int idx, struct _tm *tm, int *aflgs)
 Get alarm date and time of an X12xx hardware clock.
int X12RtcSetAlarm (int idx, CONST struct _tm *tm, int aflgs)
 Set alarm of an X12xx hardware clock.
int X12RtcGetStatus (u_long *sflgs)
 Query RTC status flags.
int X12RtcClearStatus (u_long sflgs)
 Clear RTC status flags.
int X12EepromRead (u_int addr, void *buff, size_t len)
 Read contents from non-volatile EEPROM.
int X12EepromWrite (u_int addr, CONST void *buff, size_t len)
 Store buffer contents in non-volatile EEPROM.
int X12Init (void)
 Initialize the interface to an Intersil X12xx hardware clock.

Variables

NUTRTC rtcX12x6


Function Documentation

int X12RtcReadRegs u_char  reg,
u_char buff,
size_t  cnt
 

Read RTC registers.

Parameters:
reg The first register to read.
buff Pointer to a buffer that receives the register contents.
cnt The number of registers to read.
Returns:
0 on success or -1 in case of an error.

int X12RtcWrite int  nv,
CONST u_char buff,
size_t  cnt
 

Write to RTC registers.

Parameters:
nv Must be set to 1 when writing to non-volatile registers. In this case the routine will poll for write cycle completion before returning to the caller. Set to zero if writing to volatile 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.
Returns:
0 on success or -1 in case of an error.

int X12RtcGetClock struct _tm tm  ) 
 

Get date and time from an X12xx hardware clock.

Deprecated:
New applications must use NutRtcGetTime().
Parameters:
tm Points to a structure that receives the date and time information.
Returns:
0 on success or -1 in case of an error.
Examples:
ftpd/ftpserv.c.

int X12RtcSetClock CONST struct _tm tm  ) 
 

Set an X12xx hardware clock.

Deprecated:
New applications must use NutRtcSetTime().
New time will be taken over at the beginning of the next second.

Parameters:
tm Points to a structure which contains the date and time information.
Returns:
0 on success or -1 in case of an error.
Examples:
ftpd/ftpserv.c.

int X12RtcGetAlarm int  idx,
struct _tm tm,
int *  aflgs
 

Get alarm date and time of an X12xx hardware clock.

Deprecated:
New applications must use NutRtcGetAlarm().
Parameters:
idx Zero based index. Two alarms are supported.
tm Points to a structure that receives the date and time information.
aflgs Points to an unsigned long that receives the enable flags.
Returns:
0 on success or -1 in case of an error.

int X12RtcSetAlarm int  idx,
CONST struct _tm tm,
int  aflgs
 

Set alarm of an X12xx hardware clock.

Deprecated:
New applications must use NutRtcSetAlarm().
Parameters:
idx Zero based index. Two alarms are supported.
tm Points to a structure which contains the date and time information. May be NULL to clear the alarm.
aflgs Each bit enables a specific comparision.
  • Bit 0: Seconds
  • Bit 1: Minutes
  • Bit 2: Hours
  • Bit 3: Day of month
  • Bit 4: Month
  • Bit 7: Day of week (Sunday is zero)
Returns:
0 on success or -1 in case of an error.

int X12RtcGetStatus u_long sflgs  ) 
 

Query RTC status flags.

Deprecated:
New applications must use NutRtcGetStatus().
Parameters:
sflgs Points to an unsigned long that receives the status flags.
  • Bit 0: Power fail.
  • Bit 5: Alarm 0 occured.
  • Bit 6: Alarm 1 occured.
Returns:
0 on success or -1 in case of an error.
Examples:
ftpd/ftpserv.c.

int X12RtcClearStatus u_long  sflgs  ) 
 

Clear RTC status flags.

Deprecated:
New applications must use NutRtcClearStatus().
Parameters:
sflgs Status flags to clear.
Returns:
Always 0.

int X12EepromRead u_int  addr,
void *  buff,
size_t  len
 

Read contents from non-volatile EEPROM.

Parameters:
addr Start location.
buff Points to a buffer that receives the contents.
len Number of bytes to read.
Returns:
0 on success or -1 in case of an error.

int X12EepromWrite u_int  addr,
CONST void *  buff,
size_t  len
 

Store buffer contents in non-volatile EEPROM.

The EEPROM of the X122x has a capacity of 512 bytes, while the X1286 is able to store 32 kBytes.

Parameters:
addr Storage start location.
buff Points to a buffer that contains the bytes to store.
len Number of valid bytes in the buffer.
Returns:
0 on success or -1 in case of an error.

int X12Init void   ) 
 

Initialize the interface to an Intersil X12xx hardware clock.

Deprecated:
New applications must use NutRegisterRtc().
Returns:
0 on success or -1 in case of an error.


Variable Documentation

NUTRTC rtcX12x6
 

Initial value:

 {
    X12Init,            
    X12RtcGetClock,     
    X12RtcSetClock,     
    X12RtcGetAlarm,     
    X12RtcSetAlarm,     
    X12RtcGetStatus,    
    X12RtcClearStatus   
}


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/