Доработки по тесту драйвера
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
#define OPTICAL_USE_MCPWM_CAPTURE 0
|
||||
#endif
|
||||
|
||||
enum class CaptureSource : uint8_t { RX, TX };
|
||||
enum class CaptureSource : uint8_t { RX, TX, WINDOW_END };
|
||||
|
||||
struct CaptureEvent {
|
||||
uint64_t tick;
|
||||
@@ -43,6 +43,8 @@ class PulseReceiver {
|
||||
private:
|
||||
struct Edge { uint32_t tick; uint8_t rising; uint8_t source; };
|
||||
static constexpr uint16_t DRIVER_RING_CAPACITY = 512;
|
||||
static_assert((DRIVER_RING_CAPACITY & (DRIVER_RING_CAPACITY - 1U)) == 0,
|
||||
"driver capture ring must be a power of two");
|
||||
struct TimedEdge { uint64_t tick; bool rising; };
|
||||
bool startCapture(bool withTx);
|
||||
bool consumeEdge(const Edge &edge, PulsePeriod &period);
|
||||
@@ -78,6 +80,8 @@ class PulseReceiver {
|
||||
uint32_t expectedHz_ = 0;
|
||||
float expectedDutyPct_ = 50.0f;
|
||||
bool polarityKnown_ = false, activeStartRising_ = false;
|
||||
TimedEdge polarityEdges_[3] = {};
|
||||
uint8_t polarityEdgeCount_ = 0;
|
||||
bool waitingForActiveEnd_ = true;
|
||||
uint64_t activeStart_ = 0, activeEnd_ = 0;
|
||||
bool haveRawTick_ = false;
|
||||
|
||||
Reference in New Issue
Block a user