ESPHome 2025.5.0
Loading...
Searching...
No Matches
pcf85063.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome {
8namespace pcf85063 {
9
11 public:
12 void setup() override;
13 void update() override;
14 void dump_config() override;
15 float get_setup_priority() const override;
16 void read_time();
17 void write_time();
18
19 protected:
20 bool read_rtc_();
21 bool write_rtc_();
23 struct {
24 // Control_1 register
25 bool cap_12pf : 1;
26 bool am_pm : 1;
28 bool : 1;
29 bool soft_reset : 1;
30 bool stop : 1;
31 bool : 1;
32 bool ext_test : 1;
33
34 // Control_2 register
35 uint8_t clkout_control : 3;
36 bool timer_flag : 1;
38 bool minute_int : 1;
39 bool alarm_flag : 1;
40 bool alarm_int : 1;
41
42 // Offset register
43 uint8_t offset : 7;
44 bool coarse_mode : 1;
45
46 // nvRAM register
47 uint8_t nvram : 8;
48
49 // Seconds register
50 uint8_t second : 4;
51 uint8_t second_10 : 3;
52 bool osc_stop : 1;
53
54 // Minutes register
55 uint8_t minute : 4;
56 uint8_t minute_10 : 3;
57 uint8_t : 1;
58
59 // Hours register
60 uint8_t hour : 4;
61 uint8_t hour_10 : 2;
62 uint8_t : 2;
63
64 // Days register
65 uint8_t day : 4;
66 uint8_t day_10 : 2;
67 uint8_t : 2;
68
69 // Weekdays register
70 uint8_t weekday : 3;
71 uint8_t unused_3 : 5;
72
73 // Months register
74 uint8_t month : 4;
75 uint8_t month_10 : 1;
76 uint8_t : 3;
77
78 // Years register
79 uint8_t year : 4;
80 uint8_t year_10 : 4;
81 } reg;
82 mutable uint8_t raw[sizeof(reg)];
84};
85
86template<typename... Ts> class WriteAction : public Action<Ts...>, public Parented<PCF85063Component> {
87 public:
88 void play(Ts... x) override { this->parent_->write_time(); }
89};
90
91template<typename... Ts> class ReadAction : public Action<Ts...>, public Parented<PCF85063Component> {
92 public:
93 void play(Ts... x) override { this->parent_->read_time(); }
94};
95} // namespace pcf85063
96} // namespace esphome
Helper class to easily give an object a parent of type T.
Definition helpers.h:538
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
float get_setup_priority() const override
Definition pcf85063.cpp:30
union esphome::pcf85063::PCF85063Component::PCF85063Reg pcf85063_
void play(Ts... x) override
Definition pcf85063.h:93
void play(Ts... x) override
Definition pcf85063.h:88
The RealTimeClock class exposes common timekeeping functions via the device's local real-time clock.
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5
struct esphome::pcf85063::PCF85063Component::PCF85063Reg::@137 reg