доработки всякие

This commit is contained in:
2026-08-12 12:11:55 +03:00
parent 862781fa6a
commit 1db89fca79
9 changed files with 163 additions and 37 deletions

View File

@@ -19,7 +19,7 @@ struct Settings {
uint8_t endIndex;
uint8_t accuracyIndex;
uint8_t timeIndex;
uint8_t dutyIndex;
uint8_t reserved;
uint32_t checksum;
};
@@ -83,7 +83,8 @@ bool chooseIntegerPwmConfig(uint32_t requestedHz, uint32_t sourceClockHz,
uint8_t maxBits, uint8_t dutyPct,
IntegerPwmConfig &config);
FailReason validateResolution(uint32_t frequencyHz, float dutyPct, float accuracyPct,
uint32_t captureResolutionHz, uint8_t pwmBits);
uint32_t captureResolutionHz, uint8_t pwmBits,
uint16_t averagingPeriods);
FailReason evaluatePeriod(const PulsePeriod &period, uint32_t tickHz, float expectedHz,
float expectedDuty, float tolerancePct, uint8_t repeat,
StageStats &stats);
@@ -92,3 +93,10 @@ bool makePeriodLimits(uint32_t expectedHz, float expectedDuty, float tolerancePc
FailReason evaluatePeriodFast(const PulsePeriod &period, uint32_t tickHz,
const PeriodLimits &limits, uint8_t repeat,
StageStats &stats);
FailReason evaluatePeriodWindow(uint64_t periodSum, uint64_t activeSum,
uint32_t periodCount, uint32_t tickHz,
float expectedHz, float expectedDuty,
float tolerancePct,
uint32_t minPeriod, uint32_t maxPeriod,
uint8_t repeat,
StageStats &stats);