Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed_RX8025 MAPLEminiA MAPLEminiA
RX8025.cpp
00001 //********************** 00002 // RX8025.cpp for mbed 00003 // 00004 // RX8025 rx8025(P0_5,P0_4); 00005 // or 00006 // I2C i2c(P0_5,P0_4); 00007 // RX8025 rx8025(i2c); 00008 // 00009 // (C)Copyright 2014 All rights reserved by Y.Onodera 00010 // http://einstlab.web.fc2.com 00011 //********************** 00012 00013 #include "mbed.h" 00014 #include "RX8025.h" 00015 00016 RX8025::RX8025 (PinName sda, PinName scl) : _i2c(sda, scl) { 00017 init(); 00018 } 00019 RX8025::RX8025 (I2C& p_i2c) : _i2c(p_i2c) { 00020 init(); 00021 } 00022 00023 void RX8025::put(unsigned char a, unsigned char b) 00024 { 00025 wait_us(100); // wait 62us 00026 buf[0]=a; 00027 buf[1]=b; 00028 _i2c.write(RX8025_ADDR, buf, 2); 00029 } 00030 00031 00032 void RX8025::get(unsigned char a) 00033 { 00034 wait_us(100); // wait 62us 00035 buf[0] = a; 00036 _i2c.write(RX8025_ADDR, buf, 1, true); // no stop, repeated 00037 _i2c.read( RX8025_ADDR, buf, 1); 00038 00039 } 00040 00041 00042 Times RX8025::getTIME() 00043 { 00044 get(RX8025_SECONDS); 00045 time.seconds=buf[0]; 00046 get(RX8025_MINUTES); 00047 time.minutes=buf[0]; 00048 get(RX8025_HOURS); 00049 time.hours=buf[0]; 00050 get(RX8025_WEEKDAYS); 00051 time.weekdays=buf[0]; 00052 get(RX8025_DAYS); 00053 time.days=buf[0]; 00054 get(RX8025_MONTHS); 00055 time.months=buf[0]; 00056 get(RX8025_YEARS); 00057 time.years=buf[0]; 00058 return time; 00059 } 00060 00061 00062 void RX8025::setTIME(Times t) 00063 { 00064 put(RX8025_SECONDS, t.seconds); 00065 put(RX8025_MINUTES, t.minutes); 00066 put(RX8025_HOURS, t.hours); 00067 put(RX8025_WEEKDAYS, t.weekdays); 00068 put(RX8025_DAYS, t.days); 00069 put(RX8025_MONTHS, t.months); 00070 put(RX8025_YEARS, t.years); 00071 } 00072 00073 00074 Alarmw RX8025::getALARMw() 00075 { 00076 get(RX8025_ALARM_W_M); 00077 alarmw.minute=buf[0]; 00078 get(RX8025_ALARM_W_H); 00079 alarmw.hour=buf[0]; 00080 get(RX8025_ALARM_W_W); 00081 alarmw.weekday=buf[0]; 00082 return alarmw; 00083 } 00084 00085 00086 void RX8025::setALARMw(Alarmw a) 00087 { 00088 put(RX8025_ALARM_W_M, a.minute); 00089 put(RX8025_ALARM_W_H, a.hour); 00090 put(RX8025_ALARM_W_W, a.weekday); 00091 } 00092 00093 00094 Alarmd RX8025::getALARMd() 00095 { 00096 get(RX8025_ALARM_D_M); 00097 alarmd.minute=buf[0]; 00098 get(RX8025_ALARM_D_H); 00099 alarmd.hour=buf[0]; 00100 return alarmd; 00101 } 00102 00103 00104 void RX8025::setALARMd(Alarmd a) 00105 { 00106 put(RX8025_ALARM_D_M, a.minute); 00107 put(RX8025_ALARM_D_H, a.hour); 00108 } 00109 00110 00111 Control RX8025::getCONTROL() 00112 { 00113 get(RX8025_CONTROL1); 00114 control.control1=buf[0]; 00115 get(RX8025_CONTROL2); 00116 control.control2=buf[0]; 00117 get(RX8025_OFFSET); 00118 control.offset=buf[0]; 00119 return control; 00120 } 00121 00122 00123 void RX8025::setCONTROL(Control c) 00124 { 00125 put(RX8025_CONTROL1, c.control1); 00126 put(RX8025_CONTROL2, c.control2); 00127 put(RX8025_OFFSET, c.offset); 00128 } 00129 00130 00131 void RX8025::init() 00132 { 00133 control.control1=0x00; 00134 control.control2=0x20; 00135 control.offset=0x00; 00136 setCONTROL(control); 00137 } 00138 00139
Generated on Mon Jul 18 2022 03:41:29 by
1.7.2