работает с перемычкой на 1МГц 2%

This commit is contained in:
2026-08-06 15:53:32 +03:00
parent 1edc420b77
commit f52f65686d
11 changed files with 207 additions and 55 deletions

View File

@@ -18,7 +18,7 @@ class PulseReceiver {
bool start(uint32_t expectedHz);
void stop();
void resetStream();
size_t readPeriods(PulsePeriod *periods, size_t capacity);
size_t readPeriods(PulsePeriod *periods, size_t capacity, TickType_t waitTicks = 0);
bool overflowed();
uint32_t takeDroppedItems();
uint32_t tickHz() const;
@@ -38,7 +38,7 @@ class PulseReceiver {
static constexpr size_t BLOCK_SYMBOLS = RMT_MAX_RECEIVE_SYMBOLS;
struct SymbolBlock { uint16_t count; rmt_symbol_word_t symbols[BLOCK_SYMBOLS]; };
static bool IRAM_ATTR onRmt(rmt_channel_handle_t, const rmt_rx_done_event_data_t *, void *);
bool nextRmtEdge(Edge &edge);
bool nextRmtEdge(Edge &edge, TickType_t waitTicks);
rmt_channel_handle_t channel_ = nullptr;
rmt_symbol_word_t receiveBuffer_[RMT_MAX_RECEIVE_SYMBOLS];
uint16_t receiveChunkSymbols_ = 0;