Исправить TESTLAMP, запуск CAN и расчёт фазных токов
Сохранить состояние TESTLAMP при кратких провалах входа и исключить повторный вход Timer1 во время передачи индикации. Явно сбрасывать служебный обмен CAN при запуске и выбирать соседнюю фазу по локальному индексу канала АЦП. Сохранить текущую последовательность DATA/CLK и проверочные варианты таймингов, добавить поведенческие тесты и обновить образ прошивки с картой памяти.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
Бальзам-167: проверочная прошивка с исправлением TESTLAMP
|
||||
Сборка: 13.10.2026, 11:00:35 (Москва, UTC+3).
|
||||
|
||||
Готовый образ:
|
||||
UKSSTMS320F28335_testlamp_fix_fa20ed0+.bin
|
||||
Размер: 32272 байта. Запас до параметров AT25256B: 236 байт.
|
||||
SHA-256: bfe4c3c9b55bb5022f38f254929f893e5eaab57ef3d3fa31771a6b6f97f877a4
|
||||
Паспорт: UKSSTMS320F28335_testlamp_fix_fa20ed0+.bin.manifest.json
|
||||
Архив этой сборки: fa20ed08+_2026-10-13_11-00-35_UTC+3.
|
||||
|
||||
Исправления:
|
||||
1. В get_Buttons для dsk_EPLT накопительный фильтр получает предыдущее
|
||||
значение bTestLamp вместо постоянного нуля. Раньше даже один низкий
|
||||
отсчёт GPIO26 при удержании кнопки сразу отключал тест, а следующий
|
||||
высокий отсчёт мог снова его включить. Это переключало пакеты ламп
|
||||
и семисегментных индикаторов между рабочим и тестовым режимами.
|
||||
Порог 1000 по-прежнему измеряется опросами главного цикла.
|
||||
2. cpu_timer1_isr_PULT ограничивает IER маской MINT13 и исключает собственный
|
||||
Timer1 (INT13). Прежнее IER |= MINT13 включало дополнительные источники
|
||||
вместо ограничения приоритетов и могло разрешить повторный вход Timer1.
|
||||
Вложенная передача больше не может перемешать DATA/CLK, счётчик каналов
|
||||
и фазу яркости. В машинном коде перед EINT проверено AND IER, #0x0139.
|
||||
|
||||
Штатная тестовая последовательность what_is сохранена: цифры меняются
|
||||
и тестовая маска ламп переключается каждые 500 тактов Timer1 (0,5 секунды).
|
||||
Это исправление относится к частому нерегулярному мерцанию поверх теста.
|
||||
Порядок уровней и задержек SENDBIT/RESET взят из текущего kanal.c проекта;
|
||||
для этой сборки он не изменялся. В образ вошли уже имевшиеся правки
|
||||
ecan.c, measure.c и kanal.c.
|
||||
|
||||
Проверено:
|
||||
- настоящие get_Buttons, er_anal, what_is и обработчик пульта в хостовой
|
||||
модели при O3; короткие провалы входа при удержании TESTLAMP;
|
||||
- тестовые пакеты ламп и цифр при уже включённой рабочей лампе;
|
||||
- отсутствие повторного входа ISR, отпускание и удалённая команда теста;
|
||||
- сохранение обычного PWM: шесть включённых тактов из десяти;
|
||||
- возвращение каждой старой ошибки отдельно вызывает провал теста;
|
||||
- полная компиляция и линковка TI C2000 22.6.0.LTS, O3, COFF, FPU32;
|
||||
- SCI8, четыре RAM-блока, границы AT25256B и совпадение BIN с кандидатом;
|
||||
- UTF-8 и русские пояснения к изменённому и добавленному коду.
|
||||
|
||||
Повторная проверка: python tests/testlamp/run_test.py
|
||||
Повторная сборка: python Bin/TestLampFix/rebuild.py
|
||||
|
||||
На физической плате эта прошивка пока не проверена. Для проверки повторить
|
||||
сценарий пользователя: включённые рабочие лампы, нажатие и удержание TESTLAMP,
|
||||
затем отпускание. Штатные изменения теста раз в 0,5 секунды сохраняются;
|
||||
быстрых переключений между тестовыми и рабочими показаниями быть не должно.
|
||||
Reference in New Issue
Block a user