RTC_NXP_Arduino 1.1.3
RTC driver device operation sample code for Arduino
Loading...
Searching...
No Matches
RTC_NXP.h
1
7
8#ifndef ARDUINO_RTC_DRIVER_NXP_ARD_H
9#define ARDUINO_RTC_DRIVER_NXP_ARD_H
10
11#include <Arduino.h>
12#include <stdint.h>
13#include <time.h>
14
15#include <I2C_device.h>
16#include <SPI.h>
17
25
27{
28public:
30 enum board {
31 NONE,
32 ARDUINO_SHIELD,
33 };
34
36 SECOND,
37 MINUTE,
38 HOUR,
39 DAY,
40 WEEKDAY,
41 };
42
44 RTC_NXP();
45
47 virtual ~RTC_NXP();
48
50 virtual void begin( void ) = 0;
51
59 time_t time( time_t* tp );
60
65 virtual void set( struct tm* now_tm ) = 0;
66
71 virtual bool oscillator_stop( void ) = 0;
72
78 virtual void alarm( alarm_setting digit, int val ) = 0;
79
82 virtual void alarm_clear( void ) = 0;
83
86 virtual void alarm_disable( void ) = 0;
87
90 virtual uint8_t int_clear( void ) = 0;
91
92protected:
97 virtual time_t rtc_time( void ) = 0;
98
104 static uint8_t bcd2dec( uint8_t v );
105
111 static uint8_t dec2bcd( uint8_t v );
112};
113
114
122
123class PCF2131_base : public RTC_NXP
124{
125public:
127 enum reg_num {
128 Control_1, Control_2, Control_3, Control_4, Control_5,
129 SR_Reset,
130 _100th_Seconds, Seconds, Minutes,Hours, Days, Weekdays, Months, Years,
131 Second_alarm, Minute_alarm, Hour_alarm, Day_alarm, Weekday_alarm,
132 CLKOUT_ctl,
133 Timestp_ctl1, Sec_timestp1, Min_timestp1, Hour_timestp1, Day_timestp1, Mon_timestp1, Year_timestp1,
134 Timestp_ctl2, Sec_timestp2, Min_timestp2, Hour_timestp2, Day_timestp2, Mon_timestp2, Year_timestp2,
135 Timestp_ctl3, Sec_timestp3, Min_timestp3, Hour_timestp3, Day_timestp3, Mon_timestp3, Year_timestp3,
136 Timestp_ctl4, Sec_timestp4, Min_timestp4, Hour_timestp4, Day_timestp4, Mon_timestp4, Year_timestp4,
137 Aging_offset,
138 INT_A_MASK1, INT_A_MASK2, INT_B_MASK1, INT_B_MASK2,
139 Watchdg_tim_ctl, Watchdg_tim_val
140 };
141
143 DISABLE,
144 EVERY_SECOND,
145 EVERY_MINUTE,
146 };
147
149 LAST,
150 FIRST,
151 };
152
154 {
155 FREQ_32768_HZ,
156 FREQ_16384_HZ,
157 FREQ_8192_HZ,
158 FREQ_4096_HZ,
159 FREQ_2048_HZ,
160 FREQ_1024_HZ,
161 FREQ_1_HZ,
162 FREQ_DISABLE
163 };
164
166 PCF2131_base();
167
169 virtual ~PCF2131_base();
170
174 void begin( void );
175
180 bool oscillator_stop( void );
181
186 time_t rtc_time( void );
187
194 void set( struct tm* now_tm );
195
196
202 void alarm( alarm_setting digit, int val );
203
210 void alarm( alarm_setting digit, int val, int int_sel );
211
214 void alarm_clear( void );
215
218 void alarm_disable( void );
219
226 void timestamp( int num, timestamp_setting ts_setting, int int_sel = 0 );
227
233 time_t timestamp( int num );
234
237 uint8_t int_clear( void );
238
241 uint8_t int_clear( uint8_t* state_p );
242
248 void periodic_interrupt_enable( periodic_int_select sel, int int_sel = 0 );
249
255
258 void reset();
259
262 void otp_refresh();
263
264protected:
266 virtual void _reg_w( uint8_t reg, uint8_t *vp, int len ) = 0;
267
269 virtual void _reg_r( uint8_t reg, uint8_t *vp, int len ) = 0;
270
272 virtual void _reg_w( uint8_t reg, uint8_t val ) = 0;
273
275 virtual uint8_t _reg_r( uint8_t reg ) = 0;
276
278 virtual void _bit_op8( uint8_t reg, uint8_t mask, uint8_t val ) = 0;
279
280private:
281 const int int_mask_reg[ 2 ][ 2 ] = {
282 { INT_A_MASK1, INT_A_MASK2, },
283 { INT_B_MASK1, INT_B_MASK2, },
284 };
285};
286
287
294
295class PCF2131_I2C : public PCF2131_base, public I2C_device
296{
297public:
302 PCF2131_I2C( uint8_t i2c_address = (0xA6 >> 1) );
303
309 PCF2131_I2C( TwoWire& wire, uint8_t i2c_address = (0xA6 >> 1) );
310
312 virtual ~PCF2131_I2C();
313
314#if DOXYGEN_ONLY
316 enum reg_num {
317 Control_1, Control_2, Control_3, Control_4, Control_5,
318 SR_Reset,
319 _100th_Seconds, Seconds, Minutes,Hours, Days, Weekdays, Months, Years,
320 Second_alarm, Minute_alarm, Hour_alarm, Day_alarm, Weekday_alarm,
321 CLKOUT_ctl,
322 Timestp_ctl1, Sec_timestp1, Min_timestp1, Hour_timestp1, Day_timestp1, Mon_timestp1, Year_timestp1,
323 Timestp_ctl2, Sec_timestp2, Min_timestp2, Hour_timestp2, Day_timestp2, Mon_timestp2, Year_timestp2,
324 Timestp_ctl3, Sec_timestp3, Min_timestp3, Hour_timestp3, Day_timestp3, Mon_timestp3, Year_timestp3,
325 Timestp_ctl4, Sec_timestp4, Min_timestp4, Hour_timestp4, Day_timestp4, Mon_timestp4, Year_timestp4,
326 Aging_offset,
327 INT_A_MASK1, INT_A_MASK2, INT_B_MASK1, INT_B_MASK2,
328 Watchdg_tim_ctl, Watchdg_tim_val
329 };
330
332 DISABLE,
333 EVERY_SECOND,
334 EVERY_MINUTE,
335 };
336
338 LAST,
339 FIRST,
340 };
341
343 FREQ_32768_HZ,
344 FREQ_16384_HZ,
345 FREQ_8192_HZ,
346 FREQ_4096_HZ,
347 FREQ_2048_HZ,
348 FREQ_1024_HZ,
349 FREQ_1_HZ,
350 FREQ_DISABLE
351 };
352
360 time_t time( time_t* tp );
361
365 void begin( void );
366
371 bool oscillator_stop( void );
372
377 time_t rtc_time( void );
378
385 void set( struct tm* now_tm );
386
387
393 void alarm( alarm_setting digit, int val );
394
401 void alarm( alarm_setting digit, int val, int int_sel );
402
405 void alarm_clear( void );
406
409 void alarm_disable( void );
410
417 void timestamp( int num, timestamp_setting ts_setting, int int_sel = 0 );
418
424 time_t timestamp( int num );
425
428 uint8_t int_clear( void );
429
432 uint8_t int_clear( uint8_t* state_p );
433
439 void periodic_interrupt_enable( periodic_int_select sel, int int_sel = 0 );
440
446
449 void reset();
450
454
461 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
462
468 void reg_w( uint8_t reg_adr, uint8_t data );
469
476 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
477
483 uint8_t reg_r( uint8_t reg_adr );
484
490 void write_r8( uint8_t reg, uint8_t val );
491
497 uint8_t read_r8( uint8_t reg );
498
507 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
508
509#endif // DOXYGEN_ONLY
510
511private:
513 void _reg_w( uint8_t reg, uint8_t *vp, int len );
514
516 void _reg_r( uint8_t reg, uint8_t *vp, int len );
517
519 void _reg_w( uint8_t reg, uint8_t val );
520
522 uint8_t _reg_r( uint8_t reg );
523
525 void _bit_op8( uint8_t reg, uint8_t mask, uint8_t val );
526};
527
528
535
537{
538public:
544 void txrx( uint8_t *data, int size );
545
552 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
553
559 void reg_w( uint8_t reg_adr, uint8_t data );
560
567 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
568
574 uint8_t reg_r( uint8_t reg_adr );
575
581 void write_r8( uint8_t reg, uint8_t val );
582
588 uint8_t read_r8( uint8_t reg );
589
598 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
599};
600
607
609{
610public:
612 PCF2131_SPI();
613
615 virtual ~PCF2131_SPI();
616
617#if DOXYGEN_ONLY
619 enum reg_num {
620 Control_1, Control_2, Control_3, Control_4, Control_5,
621 SR_Reset,
622 _100th_Seconds, Seconds, Minutes,Hours, Days, Weekdays, Months, Years,
623 Second_alarm, Minute_alarm, Hour_alarm, Day_alarm, Weekday_alarm,
624 CLKOUT_ctl,
625 Timestp_ctl1, Sec_timestp1, Min_timestp1, Hour_timestp1, Day_timestp1, Mon_timestp1, Year_timestp1,
626 Timestp_ctl2, Sec_timestp2, Min_timestp2, Hour_timestp2, Day_timestp2, Mon_timestp2, Year_timestp2,
627 Timestp_ctl3, Sec_timestp3, Min_timestp3, Hour_timestp3, Day_timestp3, Mon_timestp3, Year_timestp3,
628 Timestp_ctl4, Sec_timestp4, Min_timestp4, Hour_timestp4, Day_timestp4, Mon_timestp4, Year_timestp4,
629 Aging_offset,
630 INT_A_MASK1, INT_A_MASK2, INT_B_MASK1, INT_B_MASK2,
631 Watchdg_tim_ctl, Watchdg_tim_val
632 };
633
635 DISABLE,
636 EVERY_SECOND,
637 EVERY_MINUTE,
638 };
639
641 LAST,
642 FIRST,
643 };
644
646 FREQ_32768_HZ,
647 FREQ_16384_HZ,
648 FREQ_8192_HZ,
649 FREQ_4096_HZ,
650 FREQ_2048_HZ,
651 FREQ_1024_HZ,
652 FREQ_1_HZ,
653 FREQ_DISABLE
654 };
655
663 time_t time( time_t* tp );
664
668 void begin( void );
669
674 bool oscillator_stop( void );
675
680 time_t rtc_time( void );
681
688 void set( struct tm* now_tm );
689
690
696 void alarm( alarm_setting digit, int val );
697
704 void alarm( alarm_setting digit, int val, int int_sel );
705
708 void alarm_clear( void );
709
712 void alarm_disable( void );
713
720 void timestamp( int num, timestamp_setting ts_setting, int int_sel = 0 );
721
727 time_t timestamp( int num );
728
731 uint8_t int_clear( void );
732
735 uint8_t int_clear( uint8_t* state_p );
736
742 void periodic_interrupt_enable( periodic_int_select sel, int int_sel = 0 );
743
749
752 void reset();
753
757
758#endif // DOXYGEN_ONLY
759
760private:
761// void txrx( uint8_t *data, uint16_t size );
762
764 void _reg_w( uint8_t reg, uint8_t *vp, int len );
765
767 void _reg_r( uint8_t reg, uint8_t *vp, int len );
768
770 void _reg_w( uint8_t reg, uint8_t val );
771
773 uint8_t _reg_r( uint8_t reg );
774
776 void _bit_op8( uint8_t reg, uint8_t mask, uint8_t val );
777};
778
785
786class PCF85063_base : public RTC_NXP
787{
788public:
790 enum reg_num {
791 Control_1, Control_2,
792 Offset,
793 RAM_byte,
794 Seconds, Minutes, Hours, Days, Weekdays, Months, Years,
795 Second_alarm, Minute_alarm, Hour_alarm, Day_alarm, Weekday_alarm,
796 Timer_value, Timer_mode
797 };
798
801
803 virtual ~PCF85063_base();
804
808 void begin( void );
809
814 void set( struct tm* now_tm );
815
820 bool oscillator_stop( void );
821
827 void alarm( alarm_setting digit, int val );
828
831 void alarm_clear( void );
832
835 void alarm_disable( void );
836
839 uint8_t int_clear( void );
840
841
847 float timer( float period );
848
849protected:
854 time_t rtc_time( void );
855
857 virtual void _reg_w( uint8_t reg, uint8_t *vp, int len ) = 0;
858
860 virtual void _reg_r( uint8_t reg, uint8_t *vp, int len ) = 0;
861
863 virtual void _reg_w( uint8_t reg, uint8_t val ) = 0;
864
866 virtual uint8_t _reg_r( uint8_t reg ) = 0;
867
869 virtual void _bit_op8( uint8_t reg, uint8_t mask, uint8_t val ) = 0;
870};
871
872class PCF85063A : public PCF85063_base, public I2C_device
873{
874public:
879 PCF85063A( uint8_t i2c_address = (0xA2 >> 1) );
880
886 PCF85063A( TwoWire& wire, uint8_t i2c_address = (0xA2 >> 1) );
887
889 virtual ~PCF85063A();
890
891#if DOXYGEN_ONLY
893 enum reg_num {
894 Control_1, Control_2,
895 Offset,
896 RAM_byte,
897 Seconds, Minutes, Hours, Days, Weekdays, Months, Years,
898 Second_alarm, Minute_alarm, Hour_alarm, Day_alarm, Weekday_alarm,
899 Timer_value, Timer_mode
900 };
901
909 time_t time( time_t* tp );
910
914 void begin( void );
915
920 void set( struct tm* now_tm );
921
926 bool oscillator_stop( void );
927
933 void alarm( alarm_setting digit, int val );
934
937 void alarm_clear( void );
938
941 void alarm_disable( void );
942
945 uint8_t int_clear( void );
946
947
953 float timer( float period );
954
961 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
962
968 void reg_w( uint8_t reg_adr, uint8_t data );
969
976 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
977
983 uint8_t reg_r( uint8_t reg_adr );
984
990 void write_r8( uint8_t reg, uint8_t val );
991
997 uint8_t read_r8( uint8_t reg );
998
1007 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
1008
1009#endif // DOXYGEN_ONLY
1010
1011private:
1013 void _reg_w( uint8_t reg, uint8_t *vp, int len );
1014
1016 void _reg_r( uint8_t reg, uint8_t *vp, int len );
1017
1019 void _reg_w( uint8_t reg, uint8_t val );
1020
1022 uint8_t _reg_r( uint8_t reg );
1023
1025 void _bit_op8( uint8_t reg, uint8_t mask, uint8_t val );
1026};
1027
1028class PCF85063TP : public PCF85063A
1029{
1030public:
1035 PCF85063TP( uint8_t i2c_address = (0xA2 >> 1) );
1036
1042 PCF85063TP( TwoWire& wire, uint8_t i2c_address = (0xA2 >> 1) );
1043
1045 virtual ~PCF85063TP();
1046
1047#if DOXYGEN_ONLY
1049 enum reg_num {
1050 Control_1, Control_2,
1051 Offset,
1052 RAM_byte,
1053 Seconds, Minutes, Hours, Days, Weekdays, Months, Years,
1054 };
1055
1062 time_t time( time_t* tp );
1063
1067 void begin( void );
1068
1073 void set( struct tm* now_tm );
1074
1079 bool oscillator_stop( void );
1080
1087 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
1088
1094 void reg_w( uint8_t reg_adr, uint8_t data );
1095
1102 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
1103
1109 uint8_t reg_r( uint8_t reg_adr );
1110
1116 void write_r8( uint8_t reg, uint8_t val );
1117
1123 uint8_t read_r8( uint8_t reg );
1124
1133 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
1134
1135#endif // DOXYGEN_ONLY
1136
1137};
1138
1139class PCF85263A : public RTC_NXP, public I2C_device
1140{
1141public:
1143 enum reg_num {
1144 _100th_seconds, Seconds, Minutes, Hours, Days, Weekdays, Months, Years,
1145 Second_alarm1, Minute_alarm1, Hour_alarm1, Day_alarm1, Month_alarm1,
1146 Minute_alarm2, Hour_alarm2, Weekday_alarm2,
1147 Alarm_enables,
1148 TSR1_seconds, TSR1_minutes, TSR1_hours, TSR1_days, TSR1_months, TSR1_years,
1149 TSR2_seconds, TSR2_minutes, TSR2_hours, TSR2_days, TSR2_months, TSR2_years,
1150 TSR3_seconds, TSR3_minutes, TSR3_hours, TSR3_days, TSR3_months, TSR3_years,
1151 TSR_mode,
1152 Offset, Oscillator, Battery_switch, Pin_IO, Function,
1153 INTA_enable, INTB_enable, Flags,
1154 RAM_byte, WatchDog, Stop_enable, Resets,
1155
1156 Hours_xx_xx_00 = 0x03, Hours_xx_00_xx, Hours_00_xx_xx, Reserved0, Reserved1,
1157 Second_alm1, Minute_alm1, Hr_xx_xx_00_alm1, Hr_xx_00_xx_alm1, Hr_00_xx_xx_alm1,
1158 Minute_alm2, Hr_xx_00_alm2, Hr_00_xx_alm2,
1159 TSR1_hr_xx_xx_00 = 0x13, TSR1_hr_xx_00_xx, TSR1_hr_00_xx_xx, Reserved2,
1160 TSR2_hr_xx_xx_00 = 0x19, TSR2_hr_xx_00_xx, TSR2_hr_00_xx_xx, Reserved3,
1161 TSR3_hr_xx_xx_00 = 0x1F, TSR3_hr_xx_00_xx, TSR3_hr_00_xx_xx, Reserved4,
1162 };
1163
1166 SECOND,
1167 MINUTE,
1168 HOUR,
1169 DAY,
1170 MONTH,
1171 MINUTE2,
1172 HOUR2,
1173 WEEKDAY2,
1174 };
1175
1178 DISABLE,
1179 EVERY_SECOND,
1180 EVERY_MINUTE,
1181 };
1182
1184 enum inta {
1185 INTA_CLKOUT,
1186 INTA_BATTERY_MODE_INDICATION,
1187 INTA_INTTERRUPT,
1188 INTA_HIGH_Z,
1189 };
1190
1192 enum intb {
1193 INTB_DISABLE,
1194 INTB_INTTERRUPT,
1195 INTB_CLKOUT,
1196 INTB_INPUT_MODE,
1197 };
1198
1200 enum ts_in {
1201 TS_PULLUP_80K = 0x00,
1202 TS_PULLUP_40K = 0x40,
1203 TSL_ACTIVE_HIGH = 0x00,
1204 TSL_ACTIVE_LOW = 0x20,
1205 TSIM_CMOS = 0x00,
1206 TSIM_MECHANICAL = 0x10,
1207 };
1208
1213 PCF85263A( uint8_t i2c_address = (0xA2 >> 1) );
1214
1220 PCF85263A( TwoWire& wire, uint8_t i2c_address = (0xA2 >> 1) );
1221
1223 virtual ~PCF85263A();
1224
1228 void begin( void );
1229
1234 void set( struct tm* now_tm );
1235
1240 bool oscillator_stop( void );
1241
1247 void alarm( alarm_setting digit, int val );
1248
1255 void alarm( alarm_setting digit, int val, int int_sel );
1256
1263 void alarm( alarm_setting_85263A digit, int val, int int_sel = 0 );
1264
1267 void alarm_clear( void );
1268
1271 void alarm_disable( void );
1272
1275 uint8_t int_clear( void );
1276
1281 time_t rtc_time( void );
1282
1288 void periodic_interrupt_enable( periodic_int_select sel, int int_sel = 0 );
1289
1295 void pin_congfig(inta cfg_a, intb cfg_b);
1296
1301 void ts_congfig(int setting);
1302
1307 time_t timestamp( int num );
1308
1309#if DOXYGEN_ONLY
1317 time_t time( time_t* tp );
1318
1325 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
1326
1332 void reg_w( uint8_t reg_adr, uint8_t data );
1333
1340 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
1341
1347 uint8_t reg_r( uint8_t reg_adr );
1348
1354 void write_r8( uint8_t reg, uint8_t val );
1355
1361 uint8_t read_r8( uint8_t reg );
1362
1371 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
1372
1373#endif // DOXYGEN_ONLY
1374
1375private:
1376 void set_alarm( int digit, int val, int int_sel );
1377};
1378
1379class PCF85053A : public RTC_NXP, public I2C_device
1380{
1381public:
1383 enum reg_num {
1384 Seconds, Seconds_alarm, Minutes, Minutes_alarm, Hours, Hours_alarm,
1385 Day_of_the_Week, Day_of_the_Month, Month, Year,
1386 Control_Register, Status_Register,
1387 CLKOUT_Control,
1388 _2nd_Control_Register,
1389 Scratchpad, Version_Register,
1390 Vendor_ID_Register, Model_Register,
1391 Offset, Oscillator,
1392 Access_config,
1393 Sec_timestp, Min_timestp, Hour_timestp, DayWk_timestp, DayMon_timestp, Mon_timestp, Year_timestp,
1394 R_code1, R_code2
1395 };
1396
1401 PCF85053A( uint8_t i2c_address = (0xDE >> 1) );
1402
1408 PCF85053A( TwoWire& wire, uint8_t i2c_address = (0xDE >> 1) );
1409
1411 virtual ~PCF85053A();
1412
1416 void begin( void );
1417
1422 void set( struct tm* now_tm );
1423
1428 bool oscillator_stop( void );
1429
1435 void alarm( alarm_setting digit, int val );
1436
1439 void alarm_clear( void );
1440
1443 void alarm_disable( void );
1444
1447 uint8_t int_clear( void );
1448
1453 time_t rtc_time( void );
1454
1455#if DOXYGEN_ONLY
1463 time_t time( time_t* tp );
1464
1471 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
1472
1478 void reg_w( uint8_t reg_adr, uint8_t data );
1479
1486 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
1487
1493 uint8_t reg_r( uint8_t reg_adr );
1494
1500 void write_r8( uint8_t reg, uint8_t val );
1501
1507 uint8_t read_r8( uint8_t reg );
1508
1517 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
1518
1519#endif // DOXYGEN_ONLY
1520
1521private:
1522 //static inline constexpr uint8_t alarm_offsets[] = { 1, 3, 5 };
1523 static int alarm_offsets[ 3 ];
1524};
1525
1526class ForFutureExtention : public RTC_NXP, public I2C_device
1527{
1528public:
1531
1534
1538 void begin( void );
1539
1544 void set( struct tm* now_tm );
1545
1550 bool oscillator_stop( void );
1551
1556 void alarm( alarm_setting digit, int val );
1557
1560 void alarm_clear( void );
1561
1564 void alarm_disable( void );
1565
1568 uint8_t int_clear( void );
1569
1570
1571#if DOXYGEN_ONLY
1579 time_t time( time_t* tp );
1580
1587 void reg_w( uint8_t reg_adr, uint8_t *data, int size );
1588
1594 void reg_w( uint8_t reg_adr, uint8_t data );
1595
1602 void reg_r( uint8_t reg_adr, uint8_t *data, int size );
1603
1609 uint8_t reg_r( uint8_t reg_adr );
1610
1616 void write_r8( uint8_t reg, uint8_t val );
1617
1623 uint8_t read_r8( uint8_t reg );
1624
1633 void bit_op8( uint8_t reg, uint8_t mask, uint8_t value );
1634
1635#endif // DOXYGEN_ONLY
1636
1637protected:
1642 time_t rtc_time( void );
1643};
1644
1645
1646#endif // ARDUINO_RTC_DRIVER_NXP_ARD_H
void alarm(alarm_setting digit, int val)
void alarm_clear(void)
time_t time(time_t *tp)
void reg_w(uint8_t reg_adr, uint8_t data)
uint8_t reg_r(uint8_t reg_adr)
virtual ~ForFutureExtention()
time_t rtc_time(void)
uint8_t int_clear(void)
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
bool oscillator_stop(void)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
void alarm_disable(void)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
void write_r8(uint8_t reg, uint8_t val)
void set(struct tm *now_tm)
uint8_t read_r8(uint8_t reg)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
void write_r8(uint8_t reg, uint8_t val)
void set(struct tm *now_tm)
uint8_t int_clear(uint8_t *state_p)
time_t rtc_time(void)
bool oscillator_stop(void)
void reset()
void periodic_interrupt_enable(periodic_int_select sel, int int_sel=0)
void alarm(alarm_setting digit, int val)
void alarm(alarm_setting digit, int val, int int_sel)
void otp_refresh()
void reg_w(uint8_t reg_adr, uint8_t data)
void alarm_disable(void)
uint8_t read_r8(uint8_t reg)
void set_clock_out(clock_out_frequency freq)
void timestamp(int num, timestamp_setting ts_setting, int int_sel=0)
PCF2131_I2C(uint8_t i2c_address=(0xA6 > > 1))
uint8_t int_clear(void)
time_t time(time_t *tp)
time_t timestamp(int num)
periodic_int_select
Definition RTC_NXP.h:331
uint8_t reg_r(uint8_t reg_adr)
void begin(void)
virtual ~PCF2131_I2C()
void alarm_clear(void)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
clock_out_frequency
Definition RTC_NXP.h:342
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
clock_out_frequency
Definition RTC_NXP.h:645
void timestamp(int num, timestamp_setting ts_setting, int int_sel=0)
void otp_refresh()
uint8_t int_clear(void)
time_t rtc_time(void)
void begin(void)
void alarm_clear(void)
time_t time(time_t *tp)
void reset()
void alarm(alarm_setting digit, int val)
time_t timestamp(int num)
virtual ~PCF2131_SPI()
uint8_t int_clear(uint8_t *state_p)
void set_clock_out(clock_out_frequency freq)
void alarm(alarm_setting digit, int val, int int_sel)
periodic_int_select
Definition RTC_NXP.h:634
bool oscillator_stop(void)
void periodic_interrupt_enable(periodic_int_select sel, int int_sel=0)
void set(struct tm *now_tm)
void alarm_disable(void)
void begin(void)
virtual uint8_t _reg_r(uint8_t reg)=0
void set(struct tm *now_tm)
uint8_t int_clear(void)
void alarm_clear(void)
void set_clock_out(clock_out_frequency freq)
time_t rtc_time(void)
void timestamp(int num, timestamp_setting ts_setting, int int_sel=0)
void periodic_interrupt_enable(periodic_int_select sel, int int_sel=0)
virtual ~PCF2131_base()
void alarm_disable(void)
bool oscillator_stop(void)
void alarm(alarm_setting digit, int val)
virtual void _reg_r(uint8_t reg, uint8_t *vp, int len)=0
virtual void _bit_op8(uint8_t reg, uint8_t mask, uint8_t val)=0
virtual void _reg_w(uint8_t reg, uint8_t val)=0
virtual void _reg_w(uint8_t reg, uint8_t *vp, int len)=0
void begin(void)
Definition PCF85053A.cpp:7
time_t time(time_t *tp)
void write_r8(uint8_t reg, uint8_t val)
uint8_t reg_r(uint8_t reg_adr)
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
virtual ~PCF85053A()
Definition PCF85053A.cpp:5
void alarm_disable(void)
Definition PCF85053A.cpp:51
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
void alarm_clear(void)
Definition PCF85053A.cpp:44
bool oscillator_stop(void)
Definition PCF85053A.cpp:32
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
PCF85053A(uint8_t i2c_address=(0xDE > > 1))
Definition PCF85053A.cpp:3
uint8_t read_r8(uint8_t reg)
uint8_t int_clear(void)
Definition PCF85053A.cpp:56
void reg_w(uint8_t reg_adr, uint8_t data)
time_t rtc_time(void)
Definition PCF85053A.cpp:64
void alarm(alarm_setting digit, int val)
Definition PCF85053A.cpp:38
void set(struct tm *now_tm)
Definition PCF85053A.cpp:9
void set(struct tm *now_tm)
Definition PCF85063A.cpp:15
virtual void _bit_op8(uint8_t reg, uint8_t mask, uint8_t val)=0
bool oscillator_stop(void)
Definition PCF85063A.cpp:38
uint8_t int_clear(void)
Definition PCF85063A.cpp:60
void alarm_disable(void)
Definition PCF85063A.cpp:55
void alarm(alarm_setting digit, int val)
Definition PCF85063A.cpp:43
virtual void _reg_w(uint8_t reg, uint8_t val)=0
float timer(float period)
Definition PCF85063A.cpp:68
virtual void _reg_w(uint8_t reg, uint8_t *vp, int len)=0
void begin(void)
Definition PCF85063A.cpp:11
virtual uint8_t _reg_r(uint8_t reg)=0
virtual void _reg_r(uint8_t reg, uint8_t *vp, int len)=0
virtual ~PCF85063_base()
Definition PCF85063A.cpp:7
void alarm_clear(void)
Definition PCF85063A.cpp:50
time_t rtc_time(void)
time_t time(time_t *tp)
void begin(void)
void alarm(alarm_setting digit, int val)
uint8_t int_clear(void)
float timer(float period)
uint8_t read_r8(uint8_t reg)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
uint8_t reg_r(uint8_t reg_adr)
PCF85063A(uint8_t i2c_address=(0xA2 > > 1))
void set(struct tm *now_tm)
void reg_w(uint8_t reg_adr, uint8_t data)
void alarm_clear(void)
void alarm_disable(void)
bool oscillator_stop(void)
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
void write_r8(uint8_t reg, uint8_t val)
virtual ~PCF85063A()
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
void begin(void)
void write_r8(uint8_t reg, uint8_t val)
uint8_t reg_r(uint8_t reg_adr)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
virtual ~PCF85063TP()
uint8_t read_r8(uint8_t reg)
PCF85063TP(uint8_t i2c_address=(0xA2 > > 1))
Definition PCF85063TP.cpp:9
void set(struct tm *now_tm)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
void reg_w(uint8_t reg_adr, uint8_t data)
bool oscillator_stop(void)
time_t time(time_t *tp)
void pin_congfig(inta cfg_a, intb cfg_b)
void alarm_disable(void)
Definition PCF85263A.cpp:88
void ts_congfig(int setting)
void alarm(alarm_setting digit, int val)
Definition PCF85263A.cpp:50
void periodic_interrupt_enable(periodic_int_select sel, int int_sel=0)
uint8_t int_clear(void)
Definition PCF85263A.cpp:94
virtual ~PCF85263A()
Definition PCF85263A.cpp:11
uint8_t reg_r(uint8_t reg_adr)
time_t timestamp(int num)
void begin(void)
Definition PCF85263A.cpp:15
uint8_t read_r8(uint8_t reg)
alarm_setting_85263A
Definition RTC_NXP.h:1165
void reg_w(uint8_t reg_adr, uint8_t data)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
bool oscillator_stop(void)
Definition PCF85263A.cpp:45
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
PCF85263A(uint8_t i2c_address=(0xA2 > > 1))
Definition PCF85263A.cpp:3
void alarm_clear(void)
Definition PCF85263A.cpp:83
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
periodic_int_select
Definition RTC_NXP.h:1177
time_t rtc_time(void)
void write_r8(uint8_t reg, uint8_t val)
void set(struct tm *now_tm)
Definition PCF85263A.cpp:19
time_t time(time_t *tp)
virtual void begin(void)=0
virtual uint8_t int_clear(void)=0
virtual void set(struct tm *now_tm)=0
virtual time_t rtc_time(void)=0
RTC_NXP()
Definition RTC_NXP.cpp:3
virtual void alarm_disable(void)=0
virtual bool oscillator_stop(void)=0
alarm_setting
Definition RTC_NXP.h:35
static uint8_t dec2bcd(uint8_t v)
Definition RTC_NXP.cpp:24
static uint8_t bcd2dec(uint8_t v)
Definition RTC_NXP.cpp:19
virtual ~RTC_NXP()
Definition RTC_NXP.cpp:7
virtual void alarm_clear(void)=0
virtual void alarm(alarm_setting digit, int val)=0
time_t time(time_t *tp)
Definition RTC_NXP.cpp:11
uint8_t read_r8(uint8_t reg)
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
void txrx(uint8_t *data, int size)
void write_r8(uint8_t reg, uint8_t val)
void reg_r(uint8_t reg_adr, uint8_t *data, int size)