RTC8563

Dependents:   rtc_func Projekt_Wecker_LCD Projekt_Wecker_LCD Projekt_Wecker_LCD

Committer:
wolpra98
Date:
Thu Apr 16 10:35:00 2015 +0000
Revision:
0:9017c5d1bbb2
Child:
1:85010252766c
Child:
2:e84a6be5784c
RTC8563;

Who changed what in which revision?

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