ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
sn74hc165.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/hal.h"
6
7#include <vector>
8
9namespace esphome::sn74hc165 {
10
12 public:
13 SN74HC165Component() = default;
14
15 void setup() override;
16 void loop() override;
17 float get_setup_priority() const override;
18 void dump_config() override;
19
20 void set_data_pin(GPIOPin *pin) { this->data_pin_ = pin; }
21 void set_clock_pin(GPIOPin *pin) { this->clock_pin_ = pin; }
22 void set_load_pin(GPIOPin *pin) { this->load_pin_ = pin; }
24 void set_sr_count(uint8_t count) {
25 this->sr_count_ = count;
26 this->input_bits_.resize(count * 8);
27 }
28
29 protected:
30 friend class SN74HC165GPIOPin;
31 bool digital_read_(uint16_t pin);
32 void read_gpio_();
33
38 uint8_t sr_count_;
39 std::vector<bool> input_bits_;
40};
41
43class SN74HC165GPIOPin : public GPIOPin, public Parented<SN74HC165Component> {
44 public:
45 void setup() override {}
46 void pin_mode(gpio::Flags flags) override {}
47 bool digital_read() override;
48 void digital_write(bool value) override{};
49 size_t dump_summary(char *buffer, size_t len) const override;
50
51 void set_pin(uint16_t pin) { pin_ = pin; }
52 void set_inverted(bool inverted) { inverted_ = inverted; }
53
55 gpio::Flags get_flags() const override { return gpio::Flags::FLAG_INPUT; }
56
57 protected:
58 uint16_t pin_;
60};
61
62} // namespace esphome::sn74hc165
Helper class to easily give an object a parent of type T.
Definition helpers.h:1861
float get_setup_priority() const override
Definition sn74hc165.cpp:62
void set_clock_inhibit_pin(GPIOPin *pin)
Definition sn74hc165.h:23
Helper class to expose a SC74HC165 pin as an internal input GPIO pin.
Definition sn74hc165.h:43
gpio::Flags get_flags() const override
Always returns gpio::Flags::FLAG_INPUT.
Definition sn74hc165.h:55
void set_inverted(bool inverted)
Definition sn74hc165.h:52
void pin_mode(gpio::Flags flags) override
Definition sn74hc165.h:46
void digital_write(bool value) override
Definition sn74hc165.h:48
size_t dump_summary(char *buffer, size_t len) const override
Definition sn74hc165.cpp:66
uint16_t flags
@ FLAG_INPUT
Definition gpio.h:27
const void size_t len
Definition hal.h:64