RTC Library
Revision 0:fe72feeab094, committed 2015-04-16
- Comitter:
- Hevi
- Date:
- Thu Apr 16 10:34:40 2015 +0000
- Commit message:
- RTC8563 library for real time clock
Changed in this revision
diff -r 000000000000 -r fe72feeab094 RTC8563.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RTC8563.cpp Thu Apr 16 10:34:40 2015 +0000 @@ -0,0 +1,63 @@ +// +// @ Project : RTC Date Time Clock +// @ File Name : RTC8563.cpp +// @ Date : 06.04.2015 +// @ Author : Daniel Hevesy +// @ Copyright : daniel.hevesy-szetty@bulme.at +// + +#include "mbed.h" +#include "const.h" + +#include "RTC8563.h" + +RTC8563::RTC8563() : i2c(p28, p27) // delete void and add call to base constructor +{ + // Initialise I2C + i2c.frequency(40000); + char init1[2] = {0x6, 0x00}; + char init2[2] = {0x7, 0xff}; + i2c.write(0x40, init1, 2); + i2c.write(0x40, init2, 2); +} + +RTC8563::RTC8563(PinName sda, PinName scl) : i2c(sda, scl) +{ + // Initialise I2C + i2c.frequency(40000); + char init1[2] = {0x6, 0x00}; + char init2[2] = {0x7, 0xff}; + i2c.write(0x40, init1, 2); + i2c.write(0x40, init2, 2); +} + +char RTC8563::rtc_read(char address) +{ + char value; + i2c.start(); + i2c.write(RTC8563_ADR); + i2c.write(address); + i2c.start(); + i2c.write(RTC8563_ADR | _READ); + value = i2c.read(0); + i2c.stop(); + + return value; +} + +void RTC8563::rtc_write(char address, char value) +{ + i2c.start(); + i2c.write(RTC8563_ADR); + i2c.write(address); + i2c.write(value); + i2c.stop(); +} + +void RTC8563::rtc_init() +{ +} + +void RTC8563::rtc_alarm() +{ +}
diff -r 000000000000 -r fe72feeab094 RTC8563.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RTC8563.h Thu Apr 16 10:34:40 2015 +0000 @@ -0,0 +1,27 @@ +// +// @ Project : RTC8563 +// @ File Name : RTC8563.h +// @ Date : 16.04.2015 +// @ Author : Daniel Hevesy +// @ Copyright : daniel.hevesy-szetty@bulme.at +// +#include "mbed.h" +#include "const.h" + +#if !defined(_RTC8563_H) +#define _RTC8563_H + +class RTC8563 +{ +public: + RTC8563(); // delete void + RTC8563(PinName sda, PinName scl); + char rtc_read(char address); + void rtc_write(char address, char value); + void rtc_init(); + void rtc_alarm(); +protected: + I2C i2c; +}; + +#endif //_RTC8563_H \ No newline at end of file
diff -r 000000000000 -r fe72feeab094 const.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/const.h Thu Apr 16 10:34:40 2015 +0000 @@ -0,0 +1,36 @@ +/*********************************** +name: const.h Version: 0.1 +// @ Author : Daniel Hevesy +// @ Copyright : daniel.hevesy-szetty@bulme.at +description: + Named constants definitions for registers + PCF8563 RTC on HIMBED M0 - LPC11U24 +***********************************/ + +#ifndef CONST_H +#define CONST_H + +// Address of RTC +const int RTC8563_ADR = 0xA2; +// Control and status +const int CONTROL1 = 0x00; +const int CONTROL2 = 0x01; +// Time and date +const int SECONDS = 0x02; +const int MINUTES = 0x03; +const int HOURS = 0x04; +const int DAYS = 0x05; +const int WEEKDAYS = 0x06; +const int MONTHS = 0x07; +const int YEARS = 0x08; +// Alarm +const int MINUTE_ALARM = 0x09; +const int HOUR_ALARM = 0x0A; +const int DAY_ALARM = 0x0B; +const int WEEKDAY_ALARM = 0x0C; +// Clock and timer +const int CLOCKOUT_FREQ = 0x0D; +const int TIMER_CINTROL = 0x0E; +const int _READ = 0x01; + +#endif \ No newline at end of file