RTC8563 library

Dependents:   rtc_class

Committer:
MarcelReath
Date:
Wed Apr 22 18:09:53 2015 +0000
Revision:
0:f11a8d59f4c8
Marcel Reath

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarcelReath 0:f11a8d59f4c8 1 //
MarcelReath 0:f11a8d59f4c8 2 // @ Project : RTC Date Time Clock
MarcelReath 0:f11a8d59f4c8 3 // @ File Name : RTC8563.cpp
MarcelReath 0:f11a8d59f4c8 4 // @ Date : 06.04.2015
MarcelReath 0:f11a8d59f4c8 5 // @ Author : Franz Pucher
MarcelReath 0:f11a8d59f4c8 6 // @ Copyright : pe@bulme.at
MarcelReath 0:f11a8d59f4c8 7 //
MarcelReath 0:f11a8d59f4c8 8
MarcelReath 0:f11a8d59f4c8 9 #include "mbed.h"
MarcelReath 0:f11a8d59f4c8 10 #include "const.h"
MarcelReath 0:f11a8d59f4c8 11
MarcelReath 0:f11a8d59f4c8 12 #include "RTC8563.h"
MarcelReath 0:f11a8d59f4c8 13
MarcelReath 0:f11a8d59f4c8 14 RTC8563::RTC8563() : i2c(p28, p27) // delete void and add call to base constructor
MarcelReath 0:f11a8d59f4c8 15 {
MarcelReath 0:f11a8d59f4c8 16 // Initialise I2C
MarcelReath 0:f11a8d59f4c8 17 i2c.frequency(40000);
MarcelReath 0:f11a8d59f4c8 18 char init1[2] = {0x6, 0x00};
MarcelReath 0:f11a8d59f4c8 19 char init2[2] = {0x7, 0xff};
MarcelReath 0:f11a8d59f4c8 20 i2c.write(0x40, init1, 2);
MarcelReath 0:f11a8d59f4c8 21 i2c.write(0x40, init2, 2);
MarcelReath 0:f11a8d59f4c8 22 }
MarcelReath 0:f11a8d59f4c8 23
MarcelReath 0:f11a8d59f4c8 24 RTC8563::RTC8563(PinName sda, PinName scl) : i2c(sda, scl)
MarcelReath 0:f11a8d59f4c8 25 {
MarcelReath 0:f11a8d59f4c8 26 // Initialise I2C
MarcelReath 0:f11a8d59f4c8 27 i2c.frequency(40000);
MarcelReath 0:f11a8d59f4c8 28 char init1[2] = {0x6, 0x00};
MarcelReath 0:f11a8d59f4c8 29 char init2[2] = {0x7, 0xff};
MarcelReath 0:f11a8d59f4c8 30 i2c.write(0x40, init1, 2);
MarcelReath 0:f11a8d59f4c8 31 i2c.write(0x40, init2, 2);
MarcelReath 0:f11a8d59f4c8 32 }
MarcelReath 0:f11a8d59f4c8 33
MarcelReath 0:f11a8d59f4c8 34 char RTC8563::rtc_read(char address)
MarcelReath 0:f11a8d59f4c8 35 {
MarcelReath 0:f11a8d59f4c8 36 char value;
MarcelReath 0:f11a8d59f4c8 37 i2c.start();
MarcelReath 0:f11a8d59f4c8 38 i2c.write(RTC8563_ADR);
MarcelReath 0:f11a8d59f4c8 39 i2c.write(address);
MarcelReath 0:f11a8d59f4c8 40 i2c.start();
MarcelReath 0:f11a8d59f4c8 41 i2c.write(RTC8563_ADR | _READ);
MarcelReath 0:f11a8d59f4c8 42 value = i2c.read(0);
MarcelReath 0:f11a8d59f4c8 43 i2c.stop();
MarcelReath 0:f11a8d59f4c8 44
MarcelReath 0:f11a8d59f4c8 45 return value;
MarcelReath 0:f11a8d59f4c8 46 }
MarcelReath 0:f11a8d59f4c8 47
MarcelReath 0:f11a8d59f4c8 48 void RTC8563::rtc_write(char address, char value)
MarcelReath 0:f11a8d59f4c8 49 {
MarcelReath 0:f11a8d59f4c8 50 i2c.start();
MarcelReath 0:f11a8d59f4c8 51 i2c.write(RTC8563_ADR);
MarcelReath 0:f11a8d59f4c8 52 i2c.write(address);
MarcelReath 0:f11a8d59f4c8 53 i2c.write(value);
MarcelReath 0:f11a8d59f4c8 54 i2c.stop();
MarcelReath 0:f11a8d59f4c8 55 }