RX8025 library
Dependents: mbed_RX8025 MAPLEminiA MAPLEminiA
See https://developer.mbed.org/users/yasuyuki/notebook/RX8025/
Diff: RX8025.h
- Revision:
- 0:6da3d94a7774
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RX8025.h Sat Nov 08 12:19:28 2014 +0000 @@ -0,0 +1,92 @@ +//********************** +// RX8025.h for mbed +// +// (C)Copyright 2014 All rights reserved by Y.Onodera +// http://einstlab.web.fc2.com +//********************** + +#ifndef RX8025_H_ +#define RX8025_H_ + +#define RX8025_ADDR 0x64 +#define RX8025_SECONDS 0x00 +#define RX8025_MINUTES 0x10 +#define RX8025_HOURS 0x20 +#define RX8025_WEEKDAYS 0x30 +#define RX8025_DAYS 0x40 +#define RX8025_MONTHS 0x50 +#define RX8025_YEARS 0x60 +#define RX8025_OFFSET 0x70 +#define RX8025_ALARM_W_M 0x80 +#define RX8025_ALARM_W_H 0x90 +#define RX8025_ALARM_W_W 0xA0 +#define RX8025_ALARM_D_M 0xB0 +#define RX8025_ALARM_D_H 0xC0 +#define RX8025_CONTROL1 0xE0 +#define RX8025_CONTROL2 0xF0 + +#include "mbed.h" + +typedef struct { + unsigned char seconds; + unsigned char minutes; + unsigned char hours; + unsigned char weekdays; + unsigned char days; + unsigned char months; + unsigned char years; +}Times; + + +typedef struct { + unsigned char minute; + unsigned char hour; + unsigned char weekday; +}Alarmw; + + +typedef struct{ + unsigned char minute; + unsigned char hour; +}Alarmd; + + +typedef struct{ + unsigned char control1; + unsigned char control2; + unsigned char offset; +}Control; + + +class RX8025{ +public: + RX8025 (PinName sda, PinName scl); + RX8025 (I2C& p_i2c); + void init(); + + void put(unsigned char a, unsigned char b); + void get(unsigned char a); + Times getTIME(); + void setTIME(Times t); + Alarmw getALARMw(); + void setALARMw(Alarmw a); + Alarmd getALARMd(); + void setALARMd(Alarmd a); + Control getCONTROL(); + void setCONTROL(Control c); + +protected: + + I2C _i2c; + + Times time; + Alarmw alarmw; + Alarmd alarmd; + Control control; + char buf[2]; + +}; + +#endif /* RX8025_H_ */ + +