Revision 0:f11a8d59f4c8, committed 2015-04-22
- Comitter:
- MarcelReath
- Date:
- Wed Apr 22 18:09:53 2015 +0000
- Commit message:
- Marcel Reath
Changed in this revision
diff -r 000000000000 -r f11a8d59f4c8 RTC8563.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RTC8563.cpp Wed Apr 22 18:09:53 2015 +0000
@@ -0,0 +1,55 @@
+//
+// @ Project : RTC Date Time Clock
+// @ File Name : RTC8563.cpp
+// @ Date : 06.04.2015
+// @ Author : Franz Pucher
+// @ Copyright : pe@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();
+}
diff -r 000000000000 -r f11a8d59f4c8 RTC8563.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RTC8563.h Wed Apr 22 18:09:53 2015 +0000
@@ -0,0 +1,27 @@
+//
+// @ Project : RTC8563
+// @ File Name : RTC8563.h
+// @ Date : 06.04.2015
+// @ Author : Franz Pucher
+// @ Copyright : pe@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 f11a8d59f4c8 const.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/const.h Wed Apr 22 18:09:53 2015 +0000
@@ -0,0 +1,36 @@
+/***********************************
+name: const.h Version: 0.1
+author: PE HTL BULME
+email: pe@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