REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
shblock.cpp
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3//
4// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5
6#include <block/shblock.h>
7#include <entity/meta.h>
8
9#include "teensy/shblock.h"
10
12 : f_meta(block_address), set_track(bus::replace_function_idx(block_address, 2)),
13 set_track_at_ic(bus::replace_function_idx(block_address, 3)),
14 set_gain(bus::replace_function_idx(block_address, 4)),
15 set_gain_channels_zero_to_seven(bus::replace_function_idx(block_address, 5)),
16 set_gain_channels_eight_to_fifteen(bus::replace_function_idx(block_address, 6)),
17 set_inject(bus::replace_function_idx(block_address, 7)) {}
18
20 uint32_t inject_time) {
21 set_track.trigger();
22 delayMicroseconds(track_time);
23 set_inject.trigger();
24 delayMicroseconds(inject_time);
25}
26
27FLASHMEM void blocks::SHBlockHAL_V_1_0_X::set_state(SHState state) const {
28 switch (state) {
29 case SHState::TRACK:
30 set_track.trigger();
31 break;
32 case SHState::TRACK_AT_IC:
33 set_track_at_ic.trigger();
34 break;
35 case SHState::INJECT:
36 set_inject.trigger();
37 break;
38 case SHState::GAIN_ZERO_TO_SEVEN:
39 set_gain.trigger();
40 set_gain_channels_zero_to_seven.trigger();
41 break;
42 case SHState::GAIN_EIGHT_TO_FIFTEEN:
43 set_gain.trigger();
44 set_gain_channels_eight_to_fifteen.trigger();
45 break;
46 }
47}
SHBlockHAL_V_1_0_X(bus::addr_t block_address)
Definition shblock.cpp:11
void compensate_hardware_offsets(uint32_t track_time, uint32_t inject_time)
Definition shblock.cpp:19
void set_state(SHState state) const
Definition shblock.cpp:27
Definition bus.h:21
uint32_t
Definition flasher.cpp:195