diff options
author | Sugandha Gupta <sugandha.gupta@ettus.com> | 2019-10-15 11:52:46 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 12:21:32 -0800 |
commit | a801d6b046743140e9a50c7788dd17dd71f5540a (patch) | |
tree | 58d164e1b4cb2a8d871ca532287699f3912ae3d8 /host/examples/rfnoc-example/lib/gain_block_control.cpp | |
parent | 2a7e69d862f661075b98bab19e58d958c28a9af8 (diff) | |
download | uhd-a801d6b046743140e9a50c7788dd17dd71f5540a.tar.gz uhd-a801d6b046743140e9a50c7788dd17dd71f5540a.tar.bz2 uhd-a801d6b046743140e9a50c7788dd17dd71f5540a.zip |
examples: Add example out-of-tree module for RFNoC modules
This subdirectory is its own, self-contained project. It is supposed to
work against the UHD version it is shipped with.
Co-Authored-By: Martin Braun <martin.braun@ettus.com>
Co-Authored-By: Wade Fife <wade.fife@ni.com>
Diffstat (limited to 'host/examples/rfnoc-example/lib/gain_block_control.cpp')
-rw-r--r-- | host/examples/rfnoc-example/lib/gain_block_control.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/host/examples/rfnoc-example/lib/gain_block_control.cpp b/host/examples/rfnoc-example/lib/gain_block_control.cpp new file mode 100644 index 000000000..d53bafc8b --- /dev/null +++ b/host/examples/rfnoc-example/lib/gain_block_control.cpp @@ -0,0 +1,41 @@ +// +// Copyright 2019 Ettus Research, a National Instruments Brand +// +// SPDX-License-Identifier: GPL-3.0-or-later +// + +// Include our own header: +#include <rfnoc/example/gain_block_control.hpp> + +// These two includes are the minimum required to implement a block: +#include <uhd/rfnoc/defaults.hpp> +#include <uhd/rfnoc/registry.hpp> + +using namespace rfnoc::example; +using namespace uhd::rfnoc; + +const uint32_t gain_block_control::REG_GAIN_VALUE = 0x00; + +class gain_block_control_impl : public gain_block_control +{ +public: + RFNOC_BLOCK_CONSTRUCTOR(gain_block_control) + { + } + + void set_gain_value(const uint32_t gain) + { + regs().poke32(REG_GAIN_VALUE, gain); + } + + uint32_t get_gain_value() + { + return regs().peek32(REG_GAIN_VALUE); + } + +private: + +}; + +UHD_RFNOC_BLOCK_REGISTER_DIRECT( + gain_block_control, 0xb16, "Gain", CLOCK_KEY_GRAPH, "bus_clk") |