RTC Library

Dependents:   rtc_class2

Committer:
Hevi
Date:
Thu Apr 16 10:34:40 2015 +0000
Revision:
0:fe72feeab094
RTC8563 library for real time clock

Who changed what in which revision?

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