REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
SR74HCT595.h
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
4
5#pragma once
6
8
9namespace functions {
15class SR74HCT595 : public DataFunction {
16public:
17 static const SPISettings DEFAULT_SPI_SETTINGS;
18 static const SPISettings DEFAULT_SPI_SETTINGS_SHIFTED_CLOCK;
19
21 SR74HCT595(bus::addr_t address, bool shift_clock = false);
22
23 bool transfer(const void *mosi_buf, void *miso_buf, size_t count) const;
24 bool transfer8(uint8_t data_in, uint8_t *data_out = nullptr) const;
25 bool transfer16(uint16_t data_in, uint16_t *data_out = nullptr) const;
26 bool transfer32(uint32_t data_in, uint32_t *data_out = nullptr) const;
27};
28
29} // namespace functions
A DataFunction class wraps SPI communication over the digital bus.
Definition functions.h:47
DataFunction(bus::addr_t address, const SPISettings &spiSettings)
Definition functions.cpp:16
const bus::addr_t address
Definition functions.h:23
The SR74HCT595 is an 8-Bit Shift Register with 3-State Output Registers.
Definition SR74HCT595.h:15
bool transfer(const void *mosi_buf, void *miso_buf, size_t count) const
SR74HCT595(bus::addr_t address, bool shift_clock=false)
static const SPISettings DEFAULT_SPI_SETTINGS
Definition SR74HCT595.h:7
bool transfer8(uint8_t data_in, uint8_t *data_out=nullptr) const
bool transfer32(uint32_t data_in, uint32_t *data_out=nullptr) const
bool transfer16(uint16_t data_in, uint16_t *data_out=nullptr) const
static const SPISettings DEFAULT_SPI_SETTINGS_SHIFTED_CLOCK
Definition SR74HCT595.h:10
uint32_t
Definition flasher.cpp:195
namespace for internal helpers
Definition icmd.h:6