RX8025 library

Dependents:   mbed_RX8025 MAPLEminiA MAPLEminiA

See https://developer.mbed.org/users/yasuyuki/notebook/RX8025/

Committer:
yasuyuki
Date:
Sat Nov 08 12:19:28 2014 +0000
Revision:
0:6da3d94a7774
release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yasuyuki 0:6da3d94a7774 1 //**********************
yasuyuki 0:6da3d94a7774 2 // RX8025.h for mbed
yasuyuki 0:6da3d94a7774 3 //
yasuyuki 0:6da3d94a7774 4 // (C)Copyright 2014 All rights reserved by Y.Onodera
yasuyuki 0:6da3d94a7774 5 // http://einstlab.web.fc2.com
yasuyuki 0:6da3d94a7774 6 //**********************
yasuyuki 0:6da3d94a7774 7
yasuyuki 0:6da3d94a7774 8 #ifndef RX8025_H_
yasuyuki 0:6da3d94a7774 9 #define RX8025_H_
yasuyuki 0:6da3d94a7774 10
yasuyuki 0:6da3d94a7774 11 #define RX8025_ADDR 0x64
yasuyuki 0:6da3d94a7774 12 #define RX8025_SECONDS 0x00
yasuyuki 0:6da3d94a7774 13 #define RX8025_MINUTES 0x10
yasuyuki 0:6da3d94a7774 14 #define RX8025_HOURS 0x20
yasuyuki 0:6da3d94a7774 15 #define RX8025_WEEKDAYS 0x30
yasuyuki 0:6da3d94a7774 16 #define RX8025_DAYS 0x40
yasuyuki 0:6da3d94a7774 17 #define RX8025_MONTHS 0x50
yasuyuki 0:6da3d94a7774 18 #define RX8025_YEARS 0x60
yasuyuki 0:6da3d94a7774 19 #define RX8025_OFFSET 0x70
yasuyuki 0:6da3d94a7774 20 #define RX8025_ALARM_W_M 0x80
yasuyuki 0:6da3d94a7774 21 #define RX8025_ALARM_W_H 0x90
yasuyuki 0:6da3d94a7774 22 #define RX8025_ALARM_W_W 0xA0
yasuyuki 0:6da3d94a7774 23 #define RX8025_ALARM_D_M 0xB0
yasuyuki 0:6da3d94a7774 24 #define RX8025_ALARM_D_H 0xC0
yasuyuki 0:6da3d94a7774 25 #define RX8025_CONTROL1 0xE0
yasuyuki 0:6da3d94a7774 26 #define RX8025_CONTROL2 0xF0
yasuyuki 0:6da3d94a7774 27
yasuyuki 0:6da3d94a7774 28 #include "mbed.h"
yasuyuki 0:6da3d94a7774 29
yasuyuki 0:6da3d94a7774 30 typedef struct {
yasuyuki 0:6da3d94a7774 31 unsigned char seconds;
yasuyuki 0:6da3d94a7774 32 unsigned char minutes;
yasuyuki 0:6da3d94a7774 33 unsigned char hours;
yasuyuki 0:6da3d94a7774 34 unsigned char weekdays;
yasuyuki 0:6da3d94a7774 35 unsigned char days;
yasuyuki 0:6da3d94a7774 36 unsigned char months;
yasuyuki 0:6da3d94a7774 37 unsigned char years;
yasuyuki 0:6da3d94a7774 38 }Times;
yasuyuki 0:6da3d94a7774 39
yasuyuki 0:6da3d94a7774 40
yasuyuki 0:6da3d94a7774 41 typedef struct {
yasuyuki 0:6da3d94a7774 42 unsigned char minute;
yasuyuki 0:6da3d94a7774 43 unsigned char hour;
yasuyuki 0:6da3d94a7774 44 unsigned char weekday;
yasuyuki 0:6da3d94a7774 45 }Alarmw;
yasuyuki 0:6da3d94a7774 46
yasuyuki 0:6da3d94a7774 47
yasuyuki 0:6da3d94a7774 48 typedef struct{
yasuyuki 0:6da3d94a7774 49 unsigned char minute;
yasuyuki 0:6da3d94a7774 50 unsigned char hour;
yasuyuki 0:6da3d94a7774 51 }Alarmd;
yasuyuki 0:6da3d94a7774 52
yasuyuki 0:6da3d94a7774 53
yasuyuki 0:6da3d94a7774 54 typedef struct{
yasuyuki 0:6da3d94a7774 55 unsigned char control1;
yasuyuki 0:6da3d94a7774 56 unsigned char control2;
yasuyuki 0:6da3d94a7774 57 unsigned char offset;
yasuyuki 0:6da3d94a7774 58 }Control;
yasuyuki 0:6da3d94a7774 59
yasuyuki 0:6da3d94a7774 60
yasuyuki 0:6da3d94a7774 61 class RX8025{
yasuyuki 0:6da3d94a7774 62 public:
yasuyuki 0:6da3d94a7774 63 RX8025 (PinName sda, PinName scl);
yasuyuki 0:6da3d94a7774 64 RX8025 (I2C& p_i2c);
yasuyuki 0:6da3d94a7774 65 void init();
yasuyuki 0:6da3d94a7774 66
yasuyuki 0:6da3d94a7774 67 void put(unsigned char a, unsigned char b);
yasuyuki 0:6da3d94a7774 68 void get(unsigned char a);
yasuyuki 0:6da3d94a7774 69 Times getTIME();
yasuyuki 0:6da3d94a7774 70 void setTIME(Times t);
yasuyuki 0:6da3d94a7774 71 Alarmw getALARMw();
yasuyuki 0:6da3d94a7774 72 void setALARMw(Alarmw a);
yasuyuki 0:6da3d94a7774 73 Alarmd getALARMd();
yasuyuki 0:6da3d94a7774 74 void setALARMd(Alarmd a);
yasuyuki 0:6da3d94a7774 75 Control getCONTROL();
yasuyuki 0:6da3d94a7774 76 void setCONTROL(Control c);
yasuyuki 0:6da3d94a7774 77
yasuyuki 0:6da3d94a7774 78 protected:
yasuyuki 0:6da3d94a7774 79
yasuyuki 0:6da3d94a7774 80 I2C _i2c;
yasuyuki 0:6da3d94a7774 81
yasuyuki 0:6da3d94a7774 82 Times time;
yasuyuki 0:6da3d94a7774 83 Alarmw alarmw;
yasuyuki 0:6da3d94a7774 84 Alarmd alarmd;
yasuyuki 0:6da3d94a7774 85 Control control;
yasuyuki 0:6da3d94a7774 86 char buf[2];
yasuyuki 0:6da3d94a7774 87
yasuyuki 0:6da3d94a7774 88 };
yasuyuki 0:6da3d94a7774 89
yasuyuki 0:6da3d94a7774 90 #endif /* RX8025_H_ */
yasuyuki 0:6da3d94a7774 91
yasuyuki 0:6da3d94a7774 92