Всякие тесты неинтересные

This commit is contained in:
2026-09-24 07:58:47 +03:00
parent ad33d0de79
commit 040853e7dc
14 changed files with 456 additions and 32 deletions

View File

@@ -6,8 +6,8 @@
- неблокирующий конечный автомат без `pulseIn()` и длинных `delay()`;
- общие для оптического и драйверного тестов частота PWM и диапазон импульсов;
- четыре рабочих режима: `SOLO OPTICAL`, `SOLO DRIVER` (только S3),
`MASTER OPTICAL`, `SLAVE OPTICAL`;
- пять рабочих режимов: `SOLO OPTICAL`, `SOLO DRIVER` (только S3),
`SOLO PWM`, `MASTER OPTICAL`, `SLAVE OPTICAL`;
- настраиваемый для теста драйвера код `HH`, `HL`, `LH`, `LL`; в тесте
оптики полярность входного сигнала определяется автоматически;
- аппаратные LEDC (C3) и MCPWM (S3) с расчётом реально получившихся частоты и длительности импульса;
@@ -40,7 +40,8 @@ Arduino sketch находится в каталоге `OpticalChannelTester`:
- `Receiver.*` — MCPWM Capture на S3 / совместимый GPIO fallback;
- `Measurement.*` — строгая проверка периодов;
- `Protocol.*`, `Radio.*` — ESP-NOW;
- `App.*` — общий конечный автомат SOLO/MASTER/SLAVE.
- `App.*` — общий конечный автомат SOLO/MASTER/SLAVE;
- `SignalProbe.*` — тестовый вариант прошивки PWM/Rx.
## Требования Arduino IDE
@@ -187,11 +188,17 @@ MASTER <~~~~ ESP-NOW Wi-Fi channel 6 ~~~~> SLAVE
В ожидании в группе `ОПТИКА` на S3:
- MODE short: `SOLO ОПТИКА → SOLO ДРАЙВЕР → MASTER ОПТИКА → SLAVE ОПТИКА`;
- MODE short: `SOLO ОПТИКА → SOLO ДРАЙВЕР → SOLO ШИМ → MASTER ОПТИКА → SLAVE ОПТИКА`;
- MODE long: открыть настройки;
- START short: начать тест;
- START long во время теста: ABORT, PWM немедленно выключается.
На C3 режим `SOLO ДРАЙВЕР` пропускается. В `SOLO ШИМ` выход непрерывно выдаёт
выбранную частоту и длительность импульса без проверки Rx. Частота задаётся
пунктом `ЧАСТОТА ШИМ`, длительность — пунктом `ИМПУЛЬС ШИМ` (общим с
`МАКС. ИМПУЛЬС` остальных режимов). Удержание START или команда `stop` в
Serial выключает выход.
В ожидании в группе `ПЛАТА`:
- MODE short для аналоговой платы: `АЦП ↔ ШИМ ВЫХОД`;
@@ -256,6 +263,36 @@ START и MODE будят устройство. Первое, пробуждаю
5. время выборки.
6. код света `HH`, `HL`, `LH`, `LL` — только для теста драйвера.
В `SOLO ШИМ` меню показывает только частоту и длительность одного импульса.
### Тестовая прошивка PWM/Rx
Для отдельной проверки сигнала раскомментируйте `#define SIGNAL_PROBE_FIRMWARE`
в `OpticalChannelTester/Config.h` и загрузите тот же скетч. Эта прошивка
при включённом выходе выдаёт выбранный PWM на `GPIO_PWM` и независимо измеряет на
`GPIO_RX` минимальную длительность активного импульса и число пойманных
импульсов. Начальный активный уровень входа задаёт `RX_LIGHT_ON_GPIO_LEVEL`.
Результат показывается на OLED и в Serial
115200; при отсутствии OLED достаточно Serial.
- MODE коротко: следующая частота из `PWM_FREQUENCY_OPTIONS_HZ`;
- MODE удержать: следующая длительность из `MAX_PULSE_OPTIONS_NS`;
- START коротко: сбросить найденный минимум и начать измерение заново;
- START удержать: выключить или включить PWM;
- START и MODE удержать вместе: переключить активный уровень Rx между HIGH и
LOW и сбросить накопленные измерения.
Верхняя строка OLED показывает частоту и длительность импульса PWM; `OFF`
означает выключенный выход. Буква `H` или `L` справа показывает текущий
активный уровень Rx. Нижняя строка показывает минимум и число пойманных
импульсов.
Значения, при которых импульс не помещается в период, пропускаются. В статистику
Rx попадают только полные периоды выбранной частоты; число фронтов и отброшенных
периодов видно на экране, пока подходящие импульсы не найдены. Изменение PWM
сбрасывает накопленные измерения. Для возврата к обычному тестеру закомментируйте
`SIGNAL_PROBE_FIRMWARE` и загрузите скетч снова.
Экран активного уровня:
```text