LTlib LaurTec Library  4.0.3
Open Source C Library for Microchip Microcontrollers based on XC8 Compiler
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
MCP7940.h File Reference
#include "LTlib.h"

Go to the source code of this file.

Macros

#define MCP7940_I2C_MODULE_1
 
#define MCP7940_I2C_open   I2C1_open
 
#define MCP7940_I2C_baud_rate   I2C1_baud_rate
 
#define MCP7940_I2C_write_byte_to_external_device   I2C1_write_byte_to_external_device
 
#define MCP7940_I2C_read_byte_from_external_device   I2C1_read_byte_from_external_device
 
#define RTCC_WRITE_ADD   0b11011110
 
#define RTCC_DO   0x00
 
#define RTCC_LU   0x01
 
#define RTCC_MA   0x02
 
#define RTCC_ME   0x03
 
#define RTCC_GI   0x04
 
#define RTCC_VE   0x05
 
#define RTCC_SA   0x06
 
#define RTCC_SU   0x00
 
#define RTCC_MO   0x01
 
#define RTCC_TU   0x02
 
#define RTCC_WE   0x03
 
#define RTCC_TR   0x04
 
#define RTCC_FR   0x05
 
#define RTCC_SA   0x06
 
#define RTCC_ENABLE_ON   0b00000000
 
#define RTCC_ENABLE_OFF   0b10000000
 
#define RTCC_SECONDS_ADDR   0x00
 
#define RTCC_MINUTES_ADDR   0x01
 
#define RTCC_HOURS_ADDR   0x02
 
#define RTCC_DAYS_ADDR   0x04
 
#define RTCC_MONTHS_ADDR   0x05
 
#define RTCC_YEARS_ADDR   0x06
 
#define RTCC_SECONDS_ALARM_ADDR   0x0A
 
#define RTCC_MINUTES_ALARM_ADDR   0x0B
 
#define RTCC_HOURS_ALARM_ADDR   0x0C
 
#define RTCC_DAYS_ALARM_ADDR   0x0E
 
#define RTCC_SECONDS_ALARM_2_ADDR   0x11
 
#define RTCC_MINUTES_ALARM_2_ADDR   0x12
 
#define RTCC_HOURS_ALARM_2_ADDR   0x13
 
#define RTCC_DAYS_ALARM_2_ADDR   0x15
 
#define RTCC_CONFIGURATION_REG_ADDR   0x07
 
#define RTCC_ALARM_CONTROL_REG_1_ADDR   0x0D
 
#define RTCC_ALARM_CONTROL_REG_2_ADDR   0x14
 
#define RTCC_MAX_MINUTES   0x60
 
#define RTCC_MAX_HOURS   0x24
 
#define RTCC_MAX_YEARS   0xA0
 
#define RTCC_MAX_MONTHS   0x13
 
#define RTCC_MAX_DAYS   0x32
 
#define initialize_RTCC   RTCC_initialize
 
#define start_oscillator_RTCC   RTCC_start_oscillator
 
#define set_seconds_RTCC   RTCC_set_seconds
 
#define get_seconds_RTCC   RTCC_get_seconds
 
#define set_minutes_RTCC   RTCC_set_minutes
 
#define get_minutes_RTCC   RTCC_get_minutes
 
#define set_hours_RTCC   RTCC_set_hours
 
#define get_hours_RTCC   RTCC_get_hours
 
#define get_time_seconds_RTCC   RTCC_get_time_seconds
 
#define get_time_RTCC   RTCC_get_time
 
#define set_days_RTCC   RTCC_set_days
 
#define get_days_RTCC   RTCC_get_days
 
#define set_months_RTCC   RTCC_set_months
 
#define get_months_RTCC   RTCC_get_months
 
#define set_years_RTCC   RTCC_set_years
 
#define get_years_RTCC   RTCC_get_years
 
#define get_date_RTCC   RTCC_get_date
 
#define set_seconds_alarm_RTCC   RTCC_set_seconds_alarm
 
#define set_minutes_alarm_RTCC   RTCC_set_minutes_alarm
 
#define set_hours_alarm_RTCC   RTCC_set_hours_alarm
 
#define set_days_alarm_RTCC   RTCC_set_days_alarm
 
#define enable_alarm_interrupt_RTCC   RTCC_enable_alarm_interrupt
 
#define disable_alarm_interrupt_RTCC   RTCC_disable_alarm_interrupt
 
#define is_alarm_ON_RTCC   RTCC_is_alarm_ON
 
#define increment_minutes_RTCC   RTCC_increment_minutes
 
#define increment_hours_RTCC   RTCC_increment_hours
 
#define increment_years_RTCC   RTCC_increment_years
 
#define increment_months_RTCC   RTCC_increment_months
 
#define increment_days_RTCC   RTCC_increment_days
 

Functions

void RTCC_initialize (unsigned int baud_rate_KHz)
 
void RTCC_start_oscillator (void)
 
signed char RTCC_set_seconds (unsigned char seconds)
 
unsigned char RTCC_get_seconds (void)
 
signed char RTCC_set_minutes (unsigned char minutes)
 
unsigned char get_minutes_RTCC (void)
 
signed char RTCC_set_hours (unsigned char hours)
 
unsigned char RTCC_get_hours (void)
 
unsigned char * RTCC_get_time_seconds (void)
 
unsigned char * RTCC_get_time (void)
 
signed char RTCC_set_days (unsigned char days)
 
unsigned char RTCC_get_days (void)
 
signed char RTCC_set_months (unsigned char months)
 
unsigned char RTCC_get_months (void)
 
signed char RTCC_set_years (unsigned char years)
 
unsigned char RTCC_get_years (void)
 
unsigned char * RTCC_get_date (void)
 
signed char RTCC_set_seconds_alarm (unsigned char seconds, unsigned char alarm_enable)
 
signed char RTCC_set_minutes_alarm (unsigned char minutes, unsigned char alarm_enable)
 
signed char RTCC_set_hours_alarm (unsigned char hours, unsigned char alarm_enable)
 
signed char RTCC_set_days_alarm (unsigned char days, unsigned char alarm_enable)
 
signed char RTCC_enable_alarm_interrupt (void)
 
signed char RTCC_disable_alarm_interrupt (void)
 
unsigned char RTCC_is_alarm_ON (void)
 
signed char RTCC_increment_minutes (void)
 
signed char RTCC_increment_hours (void)
 
signed char RTCC_increment_years (void)
 
signed char RTCC_increment_months (void)
 
signed char RTCC_increment_days (void)
 

Macro Definition Documentation

#define disable_alarm_interrupt_RTCC   RTCC_disable_alarm_interrupt

Definition at line 498 of file MCP7940.h.

#define enable_alarm_interrupt_RTCC   RTCC_enable_alarm_interrupt

Definition at line 484 of file MCP7940.h.

#define get_date_RTCC   RTCC_get_date

Definition at line 392 of file MCP7940.h.

#define get_days_RTCC   RTCC_get_days

Definition at line 325 of file MCP7940.h.

#define get_hours_RTCC   RTCC_get_hours

Definition at line 278 of file MCP7940.h.

#define get_minutes_RTCC   RTCC_get_minutes

Definition at line 251 of file MCP7940.h.

#define get_months_RTCC   RTCC_get_months

Definition at line 353 of file MCP7940.h.

#define get_seconds_RTCC   RTCC_get_seconds

Definition at line 225 of file MCP7940.h.

#define get_time_RTCC   RTCC_get_time

Definition at line 298 of file MCP7940.h.

#define get_time_seconds_RTCC   RTCC_get_time_seconds

Definition at line 288 of file MCP7940.h.

#define get_years_RTCC   RTCC_get_years

Definition at line 381 of file MCP7940.h.

#define increment_days_RTCC   RTCC_increment_days

Definition at line 586 of file MCP7940.h.

#define increment_hours_RTCC   RTCC_increment_hours

Definition at line 540 of file MCP7940.h.

#define increment_minutes_RTCC   RTCC_increment_minutes

Definition at line 525 of file MCP7940.h.

#define increment_months_RTCC   RTCC_increment_months

Definition at line 570 of file MCP7940.h.

#define increment_years_RTCC   RTCC_increment_years

Definition at line 555 of file MCP7940.h.

#define initialize_RTCC   RTCC_initialize

Definition at line 186 of file MCP7940.h.

#define is_alarm_ON_RTCC   RTCC_is_alarm_ON

Definition at line 510 of file MCP7940.h.

#define MCP7940_I2C_baud_rate   I2C1_baud_rate

Definition at line 87 of file MCP7940.h.

#define MCP7940_I2C_MODULE_1

Definition at line 81 of file MCP7940.h.

#define MCP7940_I2C_open   I2C1_open

Definition at line 86 of file MCP7940.h.

#define MCP7940_I2C_read_byte_from_external_device   I2C1_read_byte_from_external_device

Definition at line 89 of file MCP7940.h.

#define MCP7940_I2C_write_byte_to_external_device   I2C1_write_byte_to_external_device

Definition at line 88 of file MCP7940.h.

#define RTCC_ALARM_CONTROL_REG_1_ADDR   0x0D

Definition at line 158 of file MCP7940.h.

#define RTCC_ALARM_CONTROL_REG_2_ADDR   0x14

Definition at line 159 of file MCP7940.h.

#define RTCC_CONFIGURATION_REG_ADDR   0x07

Definition at line 157 of file MCP7940.h.

#define RTCC_DAYS_ADDR   0x04

Definition at line 146 of file MCP7940.h.

#define RTCC_DAYS_ALARM_2_ADDR   0x15

Definition at line 156 of file MCP7940.h.

#define RTCC_DAYS_ALARM_ADDR   0x0E

Definition at line 152 of file MCP7940.h.

#define RTCC_DO   0x00

Definition at line 111 of file MCP7940.h.

#define RTCC_ENABLE_OFF   0b10000000

Definition at line 136 of file MCP7940.h.

#define RTCC_ENABLE_ON   0b00000000

Definition at line 135 of file MCP7940.h.

#define RTCC_FR   0x05

Definition at line 125 of file MCP7940.h.

#define RTCC_GI   0x04

Definition at line 115 of file MCP7940.h.

#define RTCC_HOURS_ADDR   0x02

Definition at line 145 of file MCP7940.h.

#define RTCC_HOURS_ALARM_2_ADDR   0x13

Definition at line 155 of file MCP7940.h.

#define RTCC_HOURS_ALARM_ADDR   0x0C

Definition at line 151 of file MCP7940.h.

#define RTCC_LU   0x01

Definition at line 112 of file MCP7940.h.

#define RTCC_MA   0x02

Definition at line 113 of file MCP7940.h.

#define RTCC_MAX_DAYS   0x32

Definition at line 168 of file MCP7940.h.

#define RTCC_MAX_HOURS   0x24

Definition at line 165 of file MCP7940.h.

#define RTCC_MAX_MINUTES   0x60

Definition at line 164 of file MCP7940.h.

#define RTCC_MAX_MONTHS   0x13

Definition at line 167 of file MCP7940.h.

#define RTCC_MAX_YEARS   0xA0

Definition at line 166 of file MCP7940.h.

#define RTCC_ME   0x03

Definition at line 114 of file MCP7940.h.

#define RTCC_MINUTES_ADDR   0x01

Definition at line 144 of file MCP7940.h.

#define RTCC_MINUTES_ALARM_2_ADDR   0x12

Definition at line 154 of file MCP7940.h.

#define RTCC_MINUTES_ALARM_ADDR   0x0B

Definition at line 150 of file MCP7940.h.

#define RTCC_MO   0x01

Definition at line 121 of file MCP7940.h.

#define RTCC_MONTHS_ADDR   0x05

Definition at line 147 of file MCP7940.h.

#define RTCC_SA   0x06

Definition at line 126 of file MCP7940.h.

#define RTCC_SA   0x06

Definition at line 126 of file MCP7940.h.

#define RTCC_SECONDS_ADDR   0x00

Definition at line 143 of file MCP7940.h.

#define RTCC_SECONDS_ALARM_2_ADDR   0x11

Definition at line 153 of file MCP7940.h.

#define RTCC_SECONDS_ALARM_ADDR   0x0A

Definition at line 149 of file MCP7940.h.

#define RTCC_SU   0x00

Definition at line 120 of file MCP7940.h.

#define RTCC_TR   0x04

Definition at line 124 of file MCP7940.h.

#define RTCC_TU   0x02

Definition at line 122 of file MCP7940.h.

#define RTCC_VE   0x05

Definition at line 116 of file MCP7940.h.

#define RTCC_WE   0x03

Definition at line 123 of file MCP7940.h.

#define RTCC_WRITE_ADD   0b11011110

Definition at line 104 of file MCP7940.h.

#define RTCC_YEARS_ADDR   0x06

Definition at line 148 of file MCP7940.h.

#define set_days_alarm_RTCC   RTCC_set_days_alarm

Definition at line 470 of file MCP7940.h.

#define set_days_RTCC   RTCC_set_days

Definition at line 314 of file MCP7940.h.

#define set_hours_alarm_RTCC   RTCC_set_hours_alarm

Definition at line 451 of file MCP7940.h.

#define set_hours_RTCC   RTCC_set_hours

Definition at line 267 of file MCP7940.h.

#define set_minutes_alarm_RTCC   RTCC_set_minutes_alarm

Definition at line 431 of file MCP7940.h.

#define set_minutes_RTCC   RTCC_set_minutes

Definition at line 241 of file MCP7940.h.

#define set_months_RTCC   RTCC_set_months

Definition at line 342 of file MCP7940.h.

#define set_seconds_alarm_RTCC   RTCC_set_seconds_alarm

Definition at line 412 of file MCP7940.h.

#define set_seconds_RTCC   RTCC_set_seconds

Definition at line 214 of file MCP7940.h.

#define set_years_RTCC   RTCC_set_years

Definition at line 370 of file MCP7940.h.

#define start_oscillator_RTCC   RTCC_start_oscillator

Definition at line 198 of file MCP7940.h.

Function Documentation

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.
signed char RTCC_disable_alarm_interrupt ( void  )

This function disable the interrupt pin functionality.

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

Definition at line 356 of file DS1337.c.

signed char RTCC_enable_alarm_interrupt ( void  )

This function enables the interrupt pin functionality.

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

Definition at line 343 of file DS1337.c.

unsigned char* RTCC_get_date ( 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 261 of file DS1337.c.

unsigned char RTCC_get_days ( 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 203 of file DS1337.c.

unsigned char RTCC_get_hours ( 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 119 of file DS1337.c.

unsigned char RTCC_get_months ( 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 227 of file DS1337.c.

unsigned char RTCC_get_seconds ( 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 69 of file DS1337.c.

unsigned char* RTCC_get_time ( 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 166 of file DS1337.c.

unsigned char* RTCC_get_time_seconds ( 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 133 of file DS1337.c.

unsigned char RTCC_get_years ( 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 250 of file DS1337.c.

signed char RTCC_increment_days ( void  )

This function increments the Days inside the RTCC.

Returns
status 0: 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 529 of file DS1337.c.

signed char RTCC_increment_hours ( void  )

This function increments the hours inside the RTCC.

Returns
status 0: 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 425 of file DS1337.c.

signed char RTCC_increment_minutes ( void  )

This function increments the minutes inside the RTCC.

Returns
status 0: 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 390 of file DS1337.c.

signed char RTCC_increment_months ( void  )

This function increments the Months inside the RTCC.

Returns
status 0: 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 495 of file DS1337.c.

signed char RTCC_increment_years ( void  )

This function increments the Years inside the RTCC.

Returns
status 0: 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 460 of file DS1337.c.

void RTCC_initialize ( 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.

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

Parameters
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 46 of file DS1337.c.

unsigned char RTCC_is_alarm_ON ( 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 366 of file DS1337.c.

signed char RTCC_set_days ( 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 0: 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 194 of file DS1337.c.

signed char RTCC_set_days_alarm ( 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 0: 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 331 of file DS1337.c.

signed char RTCC_set_hours ( 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 0: 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 110 of file DS1337.c.

signed char RTCC_set_hours_alarm ( 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 0: 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 320 of file DS1337.c.

signed char RTCC_set_minutes ( 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 0: 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 86 of file DS1337.c.

signed char RTCC_set_minutes_alarm ( 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 0: 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 307 of file DS1337.c.

signed char RTCC_set_months ( 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 0: 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 217 of file DS1337.c.

signed char RTCC_set_seconds ( 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 0: 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 59 of file DS1337.c.

signed char RTCC_set_seconds_alarm ( unsigned char  seconds,
unsigned char  alarm_enable 
)

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

Parameters
secondsSeconds 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 0: 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!
Note
Use the constants ENABLE_ON and ENABLE_OFF

Definition at line 295 of file DS1337.c.

References DS1337_I2C_write_byte_to_external_device, MCP7940_I2C_read_byte_from_external_device, MCP7940_I2C_write_byte_to_external_device, RTCC_ALARM_CONTROL_REG_1_ADDR, RTCC_ENABLE_ON, RTCC_SECONDS_ALARM_ADDR, and RTCC_WRITE_ADD.

signed char RTCC_set_years ( 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 0: 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 241 of file DS1337.c.

void RTCC_start_oscillator ( void  )

This function enable the internal 32KHz buffer to let the external crystal oscillate.

Parameters
void
Returns

Definition at line 71 of file MCP7940.c.

References delay_ms(), and RTCC_set_seconds().