Перенести исправления строба индикации из 167

Перенести настройки таймингов из 13e5bfe373
и относящуюся к индикации часть 04a9d989fb.
Сохранить текущую последовательность DATA/CLOCK ветки 167, удерживать
TESTLAMP при кратких провалах входа и исключить повторный вход Timer1.

Адаптировать тесты TESTLAMP к типу накопителя и кодировкам проекта 166.
Сохранить изменённые исходники и русские комментарии в UTF-8.

Проверка: поведенческие и мутационные тесты TESTLAMP, полная сборка
27 модулей TI C2000 21.12.0.STS и линковка, образ SCI8 30174 байта,
компиляция канала индикации с общей оптимизацией -O3.
This commit is contained in:
2026-10-13 19:18:10 +03:00
parent eb2ff79932
commit b25e026dec
5 changed files with 224 additions and 27 deletions
+8 -7
View File
@@ -1,7 +1,7 @@
/* Логика пульта и индикации. cpu_timer1_isr_PULT выбирается
* только для dsk_EPLT; для нагрузки работает обработчик из measure.c.
* Lonely относится к активности обмена, не к задержке пуска СИФУ.
* Не смешивать функции двух режимов при изменении общего таймера.
/* Логика пульта и индикации. cpu_timer1_isr_PULT выбирается
* только для dsk_EPLT; для нагрузки работает обработчик из measure.c.
* Lonely относится к активности обмена, не к задержке пуска СИФУ.
* Не смешивать функции двух режимов при изменении общего таймера.
*/
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_SWPrioritizedIsrLevels.h"
@@ -46,7 +46,8 @@ interrupt void cpu_timer1_isr_PULT(void)
EALLOW;
CpuTimer1.InterruptCount++;
IER |= MINT13; // Set "global" priority
/* Оставляет только ранее разрешённые источники по таблице приоритетов TI MINT13 и сбрасывает M_INT13 — бит 12 регистра IER, запрещая повторный Timer1 и перемешивание стробов DATA/CLOCK; исходную маску восстановит IRET. */
IER &= (MINT13 & ~M_INT13);
EINT;
EDIS; // This is needed to disable write to EALLOW protected registers
@@ -60,8 +61,8 @@ interrupt void cpu_timer1_isr_PULT(void)
toggle_ONLINE();
toggle_RES_OUT_1(); // типа это готовность
toggle_RES_OUT_2(); // на всакий
toggle_RES_OUT_1(); // Переключает резервный выход RES_OUT_1 в каждом такте пульта, сохраняя существующую выдачу признака активности обработчика.
toggle_RES_OUT_2(); // Переключает второй резервный выход RES_OUT_2 синхронно с тактом пульта, сохраняя существующее поведение этого режима платы.
if(++Lonely > Alone) Lonely = Alone;