ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
rc522_i2c.cpp
Go to the documentation of this file.
1#include "rc522_i2c.h"
2#include "esphome/core/log.h"
3
5
6static const char *const TAG = "rc522_i2c";
7
9 RC522::dump_config();
10 LOG_I2C_DEVICE(this);
11}
12
18) {
19 uint8_t value;
20 if (!read_byte(reg >> 1, &value))
21 return 0;
22 ESP_LOGVV(TAG, "read_register_(%x) -> %u", reg, value);
23 return value;
24}
25
31 uint8_t count,
32 uint8_t *values,
33 uint8_t rx_align
34) {
35 if (count == 0) {
36 return;
37 }
38
39 uint8_t b = values[0];
40 read_bytes(reg >> 1, values, count);
41
42 if (rx_align) // Only update bit positions rxAlign..7 in values[0]
43 {
44 // Create bit mask for bit positions rxAlign..7
45 uint8_t mask = 0xFF << rx_align;
46 // Apply mask to both current value of values[0] and the new data in values array.
47 values[0] = (b & ~mask) | (values[0] & mask);
48 }
49}
50
52 uint8_t value
53) {
54 this->write_byte(reg >> 1, value);
55}
56
62 uint8_t count,
63 uint8_t *values
64) {
65 write_bytes(reg >> 1, values, count);
66}
67
68} // namespace esphome::rc522_i2c
bool write_byte(uint8_t a_register, uint8_t data) const
Definition i2c.h:265
bool read_byte(uint8_t a_register, uint8_t *data)
Definition i2c.h:240
I2CRegister reg(uint8_t a_register)
calls the I2CRegister constructor
Definition i2c.h:152
bool write_bytes(uint8_t a_register, const uint8_t *data, uint8_t len) const
Definition i2c.h:251
bool read_bytes(uint8_t a_register, uint8_t *data, uint8_t len)
Compat APIs All methods below have been added for compatibility reasons.
Definition i2c.h:217
void dump_config() override
Definition rc522_i2c.cpp:8
uint8_t pcd_read_register(PcdRegister reg) override
Reads a uint8_t from the specified register in the MFRC522 chip.
Definition rc522_i2c.cpp:17
void pcd_write_register(PcdRegister reg, uint8_t value) override
Definition rc522_i2c.cpp:51