ESPHome
2026.6.0-dev
Loading...
Searching...
No Matches
esphome
components
mcp23xxx_base
mcp23xxx_base.cpp
Go to the documentation of this file.
1
#include "
mcp23xxx_base.h
"
2
#include "
esphome/core/helpers.h
"
3
#include "
esphome/core/log.h
"
4
5
namespace
esphome::mcp23xxx_base
{
6
7
template
<u
int
8_t N>
void
MCP23XXXGPIOPin<N>::setup
() {
8
this->pin_mode(flags_);
9
// When interrupt_pin is configured, pin_mode() already auto-enables CHANGE
10
// interrupt for input pins, so skip the explicit call if the user didn't
11
// override the default (NO_INTERRUPT)
12
if
(this->interrupt_mode_ !=
MCP23XXX_NO_INTERRUPT
|| this->parent_->get_interrupt_pin() ==
nullptr
) {
13
this->parent_->pin_interrupt_mode(this->pin_, this->interrupt_mode_);
14
}
15
}
16
template
<u
int
8_t N>
void
MCP23XXXGPIOPin<N>::pin_mode
(
gpio::Flags
flags
) { this->parent_->pin_mode(this->pin_,
flags
); }
17
template
<u
int
8_t N>
bool
MCP23XXXGPIOPin<N>::digital_read
() {
18
return
this->parent_->digital_read(this->pin_) != this->inverted_;
19
}
20
template
<u
int
8_t N>
void
MCP23XXXGPIOPin<N>::digital_write
(
bool
value) {
21
this->parent_->digital_write(this->pin_, value != this->inverted_);
22
}
23
template
<u
int
8_t N>
size_t
MCP23XXXGPIOPin<N>::dump_summary
(
char
*buffer,
size_t
len
)
const
{
24
return
buf_append_printf(buffer,
len
, 0,
"%u via MCP23XXX"
, this->pin_);
25
}
26
27
template
class
MCP23XXXGPIOPin<8>
;
28
template
class
MCP23XXXGPIOPin<16>
;
29
30
}
// namespace esphome::mcp23xxx_base
esphome::mcp23xxx_base::MCP23XXXGPIOPin
Definition
mcp23xxx_base.h:59
esphome::mcp23xxx_base::MCP23XXXGPIOPin::digital_write
void digital_write(bool value) override
Definition
mcp23xxx_base.cpp:20
esphome::mcp23xxx_base::MCP23XXXGPIOPin::digital_read
bool digital_read() override
Definition
mcp23xxx_base.cpp:17
esphome::mcp23xxx_base::MCP23XXXGPIOPin::pin_mode
void pin_mode(gpio::Flags flags) override
Definition
mcp23xxx_base.cpp:16
esphome::mcp23xxx_base::MCP23XXXGPIOPin::dump_summary
size_t dump_summary(char *buffer, size_t len) const override
Definition
mcp23xxx_base.cpp:23
esphome::mcp23xxx_base::MCP23XXXGPIOPin::setup
void setup() override
Definition
mcp23xxx_base.cpp:7
flags
uint16_t flags
Definition
dns_server_esp32_idf.cpp:1
helpers.h
log.h
mcp23xxx_base.h
esphome::gpio::Flags
Flags
Definition
gpio.h:24
esphome::mcp23xxx_base
Definition
mcp23xxx_base.cpp:5
esphome::mcp23xxx_base::MCP23XXX_NO_INTERRUPT
@ MCP23XXX_NO_INTERRUPT
Definition
mcp23xxx_base.h:9
esphome::len
const void size_t len
Definition
hal.h:64
Generated by
1.12.0