PIC18 LaurTec Library  3.2.0
Open Source C Library for PIC18 Microcontrollers based on C18 - XC8 Compilers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
PCF8563.c File Reference
#include "PCF8563.h"

Go to the source code of this file.

Functions

void initialize_PCF8563 (unsigned char crystal_frequency_MHz, unsigned int baud_rate_KHz)
 
signed char set_seconds_RTCC (unsigned char seconds)
 
unsigned char get_seconds_RTCC (void)
 
signed char set_minutes_RTCC (unsigned char minutes)
 
unsigned char get_minutes_RTCC (void)
 
signed char set_hours_RTCC (unsigned char hours)
 
unsigned char get_hours_RTCC (void)
 
unsigned char * get_time_seconds_RTCC (void)
 
unsigned char * get_time_RTCC (void)
 
signed char set_days_RTCC (unsigned char days)
 
unsigned char get_days_RTCC (void)
 
signed char set_day_of_the_week_RTCC (unsigned char day_of_the_week)
 
unsigned char get_week_days_RTCC (void)
 
signed char set_months_RTCC (unsigned char months)
 
unsigned char get_months_RTCC (void)
 
signed char set_years_RTCC (unsigned char years)
 
unsigned char get_years_RTCC (void)
 
unsigned char * get_date_RTCC (void)
 
signed char set_minutes_alarm_RTCC (unsigned char minutes, unsigned char alarm_enable)
 
signed char set_hours_alarm_RTCC (unsigned char hours, unsigned char alarm_enable)
 
signed char set_days_alarm_RTCC (unsigned char days, unsigned char alarm_enable)
 
signed char set_day_of_the_week_alarm_RTCC (unsigned char day_of_the_week_alarm, unsigned char alarm_enable)
 
signed char enable_alarm_interrupt_RTCC (void)
 
signed char disable_alarm_interrupt_RTCC (void)
 
unsigned char is_alarm_ON_RTCC (void)
 
signed char increment_minutes_RTCC (void)
 
signed char increment_hours_RTCC (void)
 
signed char increment_years_RTCC (void)
 
signed char increment_months_RTCC (void)
 
signed char increment_days_RTCC (void)
 

Function Documentation

signed char disable_alarm_interrupt_RTCC ( void  )

This function disable the interrupt pin functionality.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision

Definition at line 377 of file PCF8563.c.

References CONTROL_REG_2_ADDR, and WRITE_ADD.

signed char enable_alarm_interrupt_RTCC ( void  )

This function enables the interrupt pin functionality.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision

Definition at line 367 of file PCF8563.c.

References CONTROL_REG_2_ADDR, and WRITE_ADD.

unsigned char* get_date_RTCC ( void  )

This function reads the Date from the RTC. The Format DD/MM/YY

Returns
Date that is read back, as ASCII string terminated with /0

Definition at line 285 of file PCF8563.c.

References get_days_RTCC(), get_months_RTCC(), and get_years_RTCC().

unsigned char get_days_RTCC ( void  )

This function reads the day from the RTC.

Returns
Days that are read back, in BCD format (eg. 12 is 0x12 or 0b00010010).
Note
Days are in BCD format.

Definition at line 204 of file PCF8563.c.

References DAYS_ADDR, and WRITE_ADD.

unsigned char get_hours_RTCC ( void  )

This function reads the hours from the RTC.

Returns
Hours that are read back, in BCD format (eg. 12 is 0x12 or 0b00010010).
Note
Hours are in BCD format.

Definition at line 120 of file PCF8563.c.

References HOURS_ADDR, and WRITE_ADD.

unsigned char get_minutes_RTCC ( void  )

This function reads the minutes from the RTC.

Returns
Minutes that are read back, in BCD format (eg. 22 min. is 0x22 or 0b00100010).
Note
Seconds are in BCD format.

Definition at line 97 of file PCF8563.c.

References MINUTES_ADDR, and WRITE_ADD.

unsigned char get_months_RTCC ( void  )

This function reads the months from the RTC.

Returns
Months that are read back, in BCD format (eg. 12 is 0x12 or 0b00010010).
Note
Months are in BCD format.

Definition at line 251 of file PCF8563.c.

References MONTHS_ADDR, and WRITE_ADD.

unsigned char get_seconds_RTCC ( void  )

This function reads the second from the RTC.

Returns
Second that are read back, in BCD format (eg. 22 sec. is 0x22 or 0b00100010).
Note
Seconds are in BCD format.

Definition at line 70 of file PCF8563.c.

References SECONDS_ADDR, and WRITE_ADD.

unsigned char* get_time_RTCC ( void  )

This function reads the time from the RTC. The format is HH:MM (without seconds)

Returns
Time that is read back, as ASCII string terminated with /0

Definition at line 167 of file PCF8563.c.

References get_hours_RTCC(), and get_minutes_RTCC().

unsigned char* get_time_seconds_RTCC ( void  )

This function reads the time from the RTC. The format is HH:MM.ss

Returns
Time that is read back, as ASCII string terminated with /0

Definition at line 134 of file PCF8563.c.

References get_hours_RTCC(), get_minutes_RTCC(), and get_seconds_RTCC().

unsigned char get_week_days_RTCC ( void  )

Definition at line 227 of file PCF8563.c.

References DAY_WEEK_ADDR, and WRITE_ADD.

unsigned char get_years_RTCC ( void  )

This function reads the Year from the RTC.

Returns
Year that is read back, in BCD format (eg. 12 is 0x12 or 0b00010010 represents 2012).
Note
Year are in BCD format. 2012 is read as 0x12.

Definition at line 274 of file PCF8563.c.

References WRITE_ADD, and YEARS_ADDR.

signed char increment_days_RTCC ( void  )

This function increments the Days inside the RTCC.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
The function automatically checks the overflow.

Definition at line 550 of file PCF8563.c.

References get_days_RTCC(), MAX_DAYS, and set_days_RTCC().

signed char increment_hours_RTCC ( void  )

This function increments the hours inside the RTCC.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
The function automatically checks the overflow.

Definition at line 446 of file PCF8563.c.

References get_hours_RTCC(), MAX_HOURS, and set_hours_RTCC().

signed char increment_minutes_RTCC ( void  )

This function increments the minutes inside the RTCC.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
The function automatically checks the overflow and automatically increments the hours.

Definition at line 411 of file PCF8563.c.

References get_minutes_RTCC(), MAX_MINUTES, and set_minutes_RTCC().

signed char increment_months_RTCC ( void  )

This function increments the Months inside the RTCC.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
The function automatically checks the overflow.

Definition at line 516 of file PCF8563.c.

References get_months_RTCC(), MAX_MONTHS, and set_months_RTCC().

signed char increment_years_RTCC ( void  )

This function increments the Years inside the RTCC.

Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
The function automatically checks the overflow.

Definition at line 481 of file PCF8563.c.

References get_years_RTCC(), MAX_YEARS, and set_years_RTCC().

void initialize_PCF8563 ( unsigned char  crystal_frequency_MHz,
unsigned int  baud_rate_KHz 
)

This function initialize the I2C module accordingly to the clock and baud rate.

Parameters
crystal_frequency_MHzClock frequency expressed in MHz
baud_rate_KHzBaud rate expressed in KHz
Returns
Note
If other devices are connected on the I2C bus the baud rate would be changed by the function. Among several calls from different device initializations, only the last one will be reflected in the I2C module configuration.

Definition at line 49 of file PCF8563.c.

unsigned char is_alarm_ON_RTCC ( void  )

This function checks if the Alarm id ON using polling method.

Returns
status Alarm status 1: ON 0:OFF
Note
If the alarm is on, AF flag is automatically cleaned.

Definition at line 387 of file PCF8563.c.

References CONTROL_REG_2_ADDR, and WRITE_ADD.

signed char set_day_of_the_week_alarm_RTCC ( unsigned char  day_of_the_week,
unsigned char  alarm_enable 
)

This function writes the WeekDays for the alarm, in the RTC.

Parameters
day_of_the_weekDays of the week to be written.
alarmEnableEnable the alarm or not (for matching) [Enable_ON , Enable_OFF]
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
Use the constants to set the Day of the week (either Italian or English). [DO, LU, MA, ME, GI, VE, SA] or [SU, MO, TU, WE, TR, FR, SA]
Use the constants Enable_ON and Enable_OFF

Definition at line 355 of file PCF8563.c.

References DAY_WEEK_ALARM_ADDR, and WRITE_ADD.

signed char set_day_of_the_week_RTCC ( unsigned char  day_of_the_week)

This function writes the WeekDay in the RTC.

Parameters
day_of_the_weekDay of the week to be written [0..6].
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Note
Use the constants to specify the Day of the week (either Italian or English). [DO, LU, MA, ME, GI, VE, SA] or [SU, MO, TU, WE, TR, FR, SA]

Definition at line 218 of file PCF8563.c.

References DAY_WEEK_ADDR, and WRITE_ADD.

signed char set_days_alarm_RTCC ( unsigned char  days,
unsigned char  alarm_enable 
)

This function writes the Days for the alarm, in the RTC.

Parameters
daysDays to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
alarmEnableEnable the alarm or not (for matching) [ENABLE_ON , ENABLE_OFF]
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Days are in BCD format. Decimal format won't work!
Note
Use the constants ENABLE_ON and ENABLE_OFF

Definition at line 343 of file PCF8563.c.

References DAYS_ALARM_ADDR, and WRITE_ADD.

signed char set_days_RTCC ( unsigned char  days)

This function writes the days in the RTC.

Parameters
daysDay to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Days are in BCD format. Decimal format won't work!

Definition at line 195 of file PCF8563.c.

References DAYS_ADDR, and WRITE_ADD.

signed char set_hours_alarm_RTCC ( unsigned char  hours,
unsigned char  alarm_enable 
)

This function writes the hours for the alarm, in the RTC.

Parameters
hoursHours to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
alarmEnableEnable the alarm or not (for matching) [ENABLE_ON , ENABLE_OFF]
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Hours are in BCD format. Decimal format won't work!
Note
Use the constants ENABLE_ON and ENABLE_OFF

Definition at line 332 of file PCF8563.c.

References HOURS_ALARM_ADDR, and WRITE_ADD.

signed char set_hours_RTCC ( unsigned char  hours)

This function writes the hours in the RTC.

Parameters
hoursHours to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Hours are in BCD format. Decimal format won't work!

Definition at line 111 of file PCF8563.c.

References HOURS_ADDR, and WRITE_ADD.

signed char set_minutes_alarm_RTCC ( unsigned char  minutes,
unsigned char  alarm_enable 
)

This function writes the minutes for the alarm, in the RTC.

Parameters
minutesMinutes to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
alarmEnableEnable the alarm or not (for matching) [ENABLE_ON , ENABLE_OFF]
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Minutes are in BCD format. Decimal format won't work!
Note
Use the constants ENABLE_ON and ENABLE_OFF

Definition at line 319 of file PCF8563.c.

References MINUTS_ALARM_ADDR, and WRITE_ADD.

signed char set_minutes_RTCC ( unsigned char  minutes)

This function writes the seconds in the RTC.

Parameters
minutesMinutes to be written, as 2 digits BCD format (eg. 22 min. is 0x22 or 0b00100010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Minutes are in BCD format. Decimal format won't work!

Definition at line 87 of file PCF8563.c.

References MINUTES_ADDR, and WRITE_ADD.

signed char set_months_RTCC ( unsigned char  months)

This function writes the moths in the RTC.

Parameters
monthsMonths to be written, as 2 digits BCD format (eg. 12 is 0x12 or 0b00010010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Months are in BCD format. Decimal format won't work!

Definition at line 241 of file PCF8563.c.

References MONTHS_ADDR, and WRITE_ADD.

signed char set_seconds_RTCC ( unsigned char  seconds)

This function writes the seconds in the RTC.

Parameters
secondsSeconds to be written, as 2 digits BCD format (eg. 22 sec. is 0x22 or 0b00100010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Seconds are in BCD format. Decimal format won't work!

Definition at line 60 of file PCF8563.c.

References SECONDS_ADDR, and WRITE_ADD.

signed char set_years_RTCC ( unsigned char  years)

This function writes the Year in the RTC.

Parameters
yearsYear to be written, as 2 digits BCD format (eg. 2012 is only 0x12 or 0b00010010).
Returns
status 1: The info has been properly written -1: Bus Collision error -2: Not Ack error condition -3: Write collision
Warning
Years are in BCD format. Decimal format won't work!
Note
2012 is written as 12.

Definition at line 265 of file PCF8563.c.

References WRITE_ADD, and YEARS_ADDR.