#include <rmt_wrapper.hpp>
|
| | RmtTx (gpio_num_t gpio, uint32_t resolution_hz=10 '000 '000, size_t mem_symbols=64, bool with_dma=false, uint32_t queue_depth=4, rmt_clock_source_t clk_src=RMT_CLK_SRC_DEFAULT, int channel_id=-1) |
| | Create a Transmit channel.
|
| |
| | RmtTx (const RmtTx &)=delete |
| |
| RmtTx & | operator= (const RmtTx &)=delete |
| |
| | RmtTx (RmtTx &&other) noexcept |
| |
| RmtTx & | operator= (RmtTx &&other) noexcept |
| |
| | ~RmtTx () |
| |
| esp_err_t | Transmit (const rmt_symbol_word_t *symbols, size_t count, TickType_t timeout=portMAX_DELAY) const |
| | Transmit raw RMT symbols (blocking until done).
|
| |
| esp_err_t | TransmitBytes (const uint8_t *data, size_t length, const rmt_symbol_word_t &bit0, const rmt_symbol_word_t &bit1, TickType_t timeout=portMAX_DELAY) |
| | Transmit an arbitrary byte stream with custom bit timing.
|
| |
| esp_err_t | TransmitWs2812 (const uint8_t *grb, size_t length, TickType_t timeout=portMAX_DELAY) |
| | Helper dedicated to WS2812/NeoPixel @ 800 kHz. Uses 10 MHz or faster resolution to achieve accurate timings.
|
| |
| rmt_channel_handle_t | Handle () const |
| |
◆ RmtTx() [1/3]
| ws2812::RmtTx::RmtTx |
( |
gpio_num_t | gpio, |
|
|
uint32_t | resolution_hz = 10'000'000, |
|
|
size_t | mem_symbols = 64, |
|
|
bool | with_dma = false, |
|
|
uint32_t | queue_depth = 4, |
|
|
rmt_clock_source_t | clk_src = RMT_CLK_SRC_DEFAULT, |
|
|
int | channel_id = -1 ) |
|
inlineexplicit |
Create a Transmit channel.
- Parameters
-
| gpio | Output GPIO number. |
| resolution_hz | Clock resolution in Hz (max 40 MHz on ESP32‑C6). |
| mem_symbols | Symbol memory per channel (in 32”bit words). |
| with_dma | Enable DMA mode for huge transfers. |
| queue_depth | Depth of internal Transmit queue. |
| clk_src | Clock source (default: RMT_CLK_SRC_DEFAULT). |
| channel_id | [Optional] fixed channel (0‑3). Pass -1 for auto. |
◆ RmtTx() [2/3]
| ws2812::RmtTx::RmtTx |
( |
const RmtTx & | | ) |
|
|
delete |
◆ RmtTx() [3/3]
| ws2812::RmtTx::RmtTx |
( |
RmtTx && | other | ) |
|
|
inlinenoexcept |
◆ ~RmtTx()
| ws2812::RmtTx::~RmtTx |
( |
| ) |
|
|
inline |
◆ Handle()
| rmt_channel_handle_t ws2812::RmtTx::Handle |
( |
| ) |
const |
|
inline |
◆ operator=() [1/2]
| RmtTx & ws2812::RmtTx::operator= |
( |
const RmtTx & | | ) |
|
|
delete |
◆ operator=() [2/2]
| RmtTx & ws2812::RmtTx::operator= |
( |
RmtTx && | other | ) |
|
|
inlinenoexcept |
◆ Transmit()
| esp_err_t ws2812::RmtTx::Transmit |
( |
const rmt_symbol_word_t * | symbols, |
|
|
size_t | count, |
|
|
TickType_t | timeout = portMAX_DELAY ) const |
|
inline |
Transmit raw RMT symbols (blocking until done).
◆ TransmitBytes()
| esp_err_t ws2812::RmtTx::TransmitBytes |
( |
const uint8_t * | data, |
|
|
size_t | length, |
|
|
const rmt_symbol_word_t & | bit0, |
|
|
const rmt_symbol_word_t & | bit1, |
|
|
TickType_t | timeout = portMAX_DELAY ) |
|
inline |
Transmit an arbitrary byte stream with custom bit timing.
- Parameters
-
| bit0 | Symbol encoding logic‑0 (LSB first by default). |
| bit1 | Symbol encoding logic‑1. |
◆ TransmitWs2812()
| esp_err_t ws2812::RmtTx::TransmitWs2812 |
( |
const uint8_t * | grb, |
|
|
size_t | length, |
|
|
TickType_t | timeout = portMAX_DELAY ) |
|
inline |
Helper dedicated to WS2812/NeoPixel @ 800 kHz. Uses 10 MHz or faster resolution to achieve accurate timings.
The documentation for this class was generated from the following file: