REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
icmd.cpp
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#include "icmd.h"
6#include "block/iblock.h"
7
8#include <entity/meta.h>
9#include <utils/is_number.h>
10#include <utils/logging.h>
11
13 4'000'000, MSBFIRST, SPI_MODE2 /* chip expects SPI MODE0, but CLK is inverted on the way */};
14
16 : SR74HCT595(address, DEFAULT_SPI_SETTINGS) {}
17
18uint8_t functions::ICommandRegisterFunction::chip_cmd_word(uint8_t chip_input_idx, uint8_t chip_output_idx,
19 bool connect) {
20 return (connect ? 0b1'000'0000 : 0b0'000'0000) | ((chip_output_idx & 0x7) << 4) | (chip_input_idx & 0xF);
21}
ICommandRegisterFunction(bus::addr_t address)
Definition icmd.cpp:15
static uint8_t chip_cmd_word(uint8_t chip_input_idx, uint8_t chip_output_idx, bool connect=true)
Definition icmd.cpp:18
static const SPISettings DEFAULT_SPI_SETTINGS
Definition icmd.h:12
The SR74HCT595 is an 8-Bit Shift Register with 3-State Output Registers.
Definition SR74HCT595.h:15