фиксы до работы с перемычкой вместо оптики
This commit is contained in:
32
README.md
32
README.md
@@ -18,6 +18,7 @@
|
||||
- Preferences/NVS с версией структуры, checksum, проверкой индексов и восстановлением defaults;
|
||||
- работа через Serial при отсутствующем OLED;
|
||||
- безопасное выключение PWM при PASS, FAIL, ABORT и потере связи.
|
||||
- полный журнал действий в Serial с временными метками; OLED необязателен.
|
||||
|
||||
## Файлы
|
||||
|
||||
@@ -29,6 +30,7 @@ Arduino sketch находится в каталоге `OpticalChannelTester`:
|
||||
- `Buttons.*` — автомат двух кнопок;
|
||||
- `SettingsStore.*` — NVS;
|
||||
- `Display.*` — OLED и компактное форматирование;
|
||||
- `Log.*` — журнал действий и Serial-зеркало интерфейса;
|
||||
- `Pwm.*` — LEDC;
|
||||
- `Receiver.*` — RMT RX / совместимый fallback;
|
||||
- `Measurement.*` — строгая проверка периодов;
|
||||
@@ -68,6 +70,32 @@ Arduino sketch находится в каталоге `OpticalChannelTester`:
|
||||
|
||||
Подключите SSD1306 128×32: `VCC → 3.3 V`, `GND → GND`, `SDA/SCL` по таблице. Адрес по умолчанию `0x3C`. Если OLED не отвечает, тест продолжает работать и пишет диагностику в Serial 115200.
|
||||
|
||||
### Работа вообще без OLED
|
||||
|
||||
OLED можно не подключать. Откройте Serial Monitor на **115200 baud**: каждый экран всегда дублируется одной строкой вида:
|
||||
|
||||
```text
|
||||
[ 1250][UI ] MODE: SOLO | START=RUN
|
||||
```
|
||||
|
||||
В Serial также выводятся:
|
||||
|
||||
- каждое распознанное нажатие START/MODE и текущее состояние автомата;
|
||||
- вход, изменение и сохранение каждого пункта меню;
|
||||
- загрузка, проверка и сохранение NVS;
|
||||
- запуск/остановка PWM и реальные параметры LEDC;
|
||||
- начало этапа, число отбрасываемых периодов и параметры измерительного окна;
|
||||
- все действия ESP-NOW, peer, session/stage/sequence, ACK и повторы;
|
||||
- статистика этапа, первый плохой период и итоговая причина завершения;
|
||||
- все строки, которые были бы показаны на OLED.
|
||||
|
||||
Во время строгого измерительного окна отдельные импульсы намеренно не печатаются: они проверяются потоково, а итоговая статистика выводится после окна. Это предотвращает влияние Serial на точность и переполнение очереди RMT. Журнал действий включён параметрами в `Config.h`:
|
||||
|
||||
```cpp
|
||||
constexpr bool SERIAL_ACTION_LOG = true;
|
||||
constexpr bool SERIAL_LOG_TIMESTAMPS = true;
|
||||
```
|
||||
|
||||
### Кнопки
|
||||
|
||||
По умолчанию задано:
|
||||
@@ -174,8 +202,8 @@ PWM_SETTLE_CYCLES / actualFrequency + TEST_TIME * REPEATS
|
||||
|
||||
| Target | Arduino-ESP32 | Flash | RAM | Результат |
|
||||
|---|---:|---:|---:|---|
|
||||
| ESP32-C3 | 3.3.10 | 1,020,337 B (77%) | 39,460 B (12%) | PASS |
|
||||
| ESP32-S3 | 3.3.10 | 947,712 B (72%) | 48,620 B (14%) | PASS |
|
||||
| ESP32-C3 | 3.3.10 | 1,024,299 B (78%) | 39,460 B (12%) | PASS |
|
||||
| ESP32-S3 | 3.3.10 | 950,608 B (72%) | 48,620 B (14%) | PASS |
|
||||
|
||||
Локальные unit-тесты: `core tests: PASS`, `button tests: PASS`. Они покрывают неделимый диапазон, END без дубля, ALL, границы допусков, немедленный FAIL, resolution, checksum настроек, CRC протокола и отсутствие short после long.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user