diff --git a/applications/PoP/roomtest/pop_map.c b/applications/PoP/roomtest/pop_map.c index 4843edb..04f3cb9 100644 --- a/applications/PoP/roomtest/pop_map.c +++ b/applications/PoP/roomtest/pop_map.c @@ -2227,9 +2227,14 @@ uint8_t pop_loose_modif[30]; /* публично: читает pop_bg п * позициям всё равно отрабатывают: замер 11/15 — 9 852 такта на комнату, * где loose-плит нет вовсе. * - * Ставится ПРИ ВЗВОДЕ фазы — все пять мест записи ненулевого значения лежат + * Ставится ПРИ ВЗВОДЕ фазы — все ШЕСТЬ мест записи ненулевого значения лежат * в этом файле (make_loose_fall, ветка потолка в check_press, do_knock для - * обоих рядов, восстановление из room_modif в pop_loose_reset). Снимает его + * обоих рядов, восстановление из room_modif в pop_loose_reset и раздача + * отложенного старта в check_fall_flo — уровень 13). + * + * ИМЕННО ЗДЕСЬ УЖЕ ОШИБЛИСЬ ОДИН РАЗ: check_fall_flo забыли, и каскад + * уровня 13 перестал падать — плиты дрожали и застывали. Добавляя новое + * место записи фазы, добавляй и взвод. Снимает его * САМ цикл, когда прошёл оба массива и не встретил ни одной ненулевой фазы. * * Асимметрия намеренная: ложная единица стоит одного холостого прохода, @@ -2596,6 +2601,12 @@ void pop_check_fall_flo(void) __banked if ((int8_t)pop_ceil_modif[col] > 0) continue; pop_ceil_modif[col] = (uint8_t)(-(int8_t)(pop_prandom(&loose_seed, 255) & 0x0F) - 1); + loose_any = 1; /* ШЕСТОЕ место взвода гейта — см. loose_any. + * Пропуск именно здесь стоил каскада на + * уровне 13: плиты получали отложенный + * старт, но цикл их не досчитывал, и они + * дрожали, не падая (нашёл пользователь + * 2026-08-19). */ pop_set_redraw_above(col, POP_RDA_CEIL, 1); } }