Files
Balsam_167/Source/Internal/Include/package.h
Andrey 1e911e5250 Обновить логгер УМП и исправить запуск UART и EEPROM
Перейти на компактные 12-словные записи v4 и сохранять 10 процентов банка после отключения. Добавить трёхсекундное ожидание роста ЗПТ и настраиваемый лимит пусков. Явно инициализировать состояние UART и гарантировать публикацию параметров EEPROM перед запуском Timer2. Сохранить воспроизводимые сборки, регрессионные проверки, документацию и обновлённые результаты сборки; исключить временные артефакты.
2026-10-12 12:25:41 +03:00

303 lines
14 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Адреса устройств, типы плат и псевдонимы технологических регистров. Русские пояснения сохранены в UTF-8. */
/* Начинает условие: PACKAGE ещё не определён; защищает повторное включение или задаёт значение сборки. */
#ifndef PACKAGE
/* Определяет защитный символ или переключатель PACKAGE для последующей компиляции. */
#define PACKAGE
/* Задаёт BALSAM = 167; данные BALSAM. */
#define BALSAM 167
/* Условие компиляции BALSAM == 167: выбранный блок включается в текущий вариант прошивки. */
#if BALSAM == 167
/* Задаёт OBOROT = STRAIGHT; данные OBOROT. */
#define OBOROT STRAIGHT
/* Определяет защитный символ или переключатель CALIB_RS для последующей компиляции. */
#define CALIB_RS
/* Определяет защитный символ или переключатель OWEN для последующей компиляции. */
#define OWEN
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Условие компиляции BALSAM == 166: выбранный блок включается в текущий вариант прошивки. */
#if BALSAM == 166
/* Задаёт OBOROT = REVERSE; данные OBOROT. */
#define OBOROT REVERSE
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Условие компиляции BALSAM == 165: выбранный блок включается в текущий вариант прошивки. */
#if BALSAM == 165
/* Задаёт OBOROT = STRAIGHT; данные OBOROT. */
#define OBOROT STRAIGHT
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Условие компиляции BALSAM == 164: выбранный блок включается в текущий вариант прошивки. */
#if BALSAM == 164
/* Задаёт OBOROT = REVERSE; данные OBOROT. */
#define OBOROT REVERSE
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Определяет защитный символ или переключатель ONBOARDCALIBER для последующей компиляции. */
#define ONBOARDCALIBER
/* Задаёт TERMOPAIR = 14; данные TERMOPAIR. */
#define TERMOPAIR 14
/* Задаёт CURRENTOS = (TERMOPAIR*2); данные CURRENTOS. */
#define CURRENTOS (TERMOPAIR*2)
//-----------------------------------------------
/* Задаёт adr_TRN1 = 1; данные adr_TRN1. */
#define adr_TRN1 1
/* Задаёт adr_TRN2 = 2; данные adr_TRN2. */
#define adr_TRN2 2
/* Задаёт adr_POW1 = 3; данные adr_POW1. */
#define adr_POW1 3
/* Задаёт adr_POW2 = 4; данные adr_POW2. */
#define adr_POW2 4
/* Задаёт adr_LOA1 = 5; данные adr_LOA1. */
#define adr_LOA1 5
/* Задаёт adr_LOA2 = 6; данные adr_LOA2. */
#define adr_LOA2 6
/* Задаёт adr_ENG1 = 7; данные adr_ENG1. */
#define adr_ENG1 7
/* Задаёт adr_PULT = 8; данные adr_PULT. */
#define adr_PULT 8
/* Задаёт adr_SHKF = 9; данные adr_SHKF. */
#define adr_SHKF 9
//-------------------
/* Задаёт adr_REC1 = 0xff; данные adr_REC1. */
#define adr_REC1 0xff
/* Задаёт adr_REC2 = 0xff; данные adr_REC2. */
#define adr_REC2 0xff
/* Задаёт adr_INV1 = 0xff; данные adr_INV1. */
#define adr_INV1 0xff
/* Задаёт adr_INV2 = 0xff; данные adr_INV2. */
#define adr_INV2 0xff
/* Задаёт adr_BRK1 = 0xff; данные adr_BRK1. */
#define adr_BRK1 0xff
/* Задаёт adr_BRK2 = 0xff; данные adr_BRK2. */
#define adr_BRK2 0xff
/* Задаёт adr_ENG2 = 0xff; данные adr_ENG2. */
#define adr_ENG2 0xff
/* Задаёт adr_PLT1 = 0xff; данные adr_PLT1. */
#define adr_PLT1 0xff
/* Задаёт adr_PLT2 = 0xff; данные adr_PLT2. */
#define adr_PLT2 0xff
/* Задаёт adr_DSTR = 0xff; данные adr_DSTR. */
#define adr_DSTR 0xff
//-----------------------------------------------
/* Задаёт dsk_COMM = 1; данные dsk_COMM. */
#define dsk_COMM 1
/* Задаёт dsk_BKSD = 2; данные dsk_BKSD. */
#define dsk_BKSD 2
/* Задаёт dsk_BKST = 3; данные dsk_BKST. */
#define dsk_BKST 3
/* Задаёт dsk_EPLT = 4; данные dsk_EPLT. */
#define dsk_EPLT 4
/* Задаёт dsk_SHKF = 5; данные dsk_SHKF. */
#define dsk_SHKF 5
/* Задаёт dsk_LOAD = 6; код платы нагрузки. */
#define dsk_LOAD 6
//-----------------------------------------------
//-----------------------------------------------
/* Задаёт TPL_TRN = 10; данные TPL_TRN. */
#define TPL_TRN 10
/* Условие компиляции BALSAM == 167: выбранный блок включается в текущий вариант прошивки. */
#if BALSAM == 167
/* Задаёт TPL_POW = 7; данные TPL_POW. */
#define TPL_POW 7
/* Задаёт OWEN_DT = 2; данные OWEN_DT. */
#define OWEN_DT 2
/* Выбирает альтернативный блок текущего условия компиляции. */
#else
/* Задаёт TPL_POW = 8; данные TPL_POW. */
#define TPL_POW 8
/* Задаёт OWEN_DT = 0; данные OWEN_DT. */
#define OWEN_DT 0
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Задаёт TPL_ENG = 8; данные TPL_ENG. */
#define TPL_ENG 8
/* Задаёт TPL_SHK = 15; данные TPL_SHK. */
#define TPL_SHK 15
//-----------------------------------------------
/* Задаёт Modbus = ((WORDE *)modbus); данные Modbus. */
#define Modbus ((WORDE *)modbus)
/* Задаёт start_error = 0x00; start ошибка. */
#define start_error 0x00
/* Задаёт start_data = 0x18; start данные. */
#define start_data 0x18
/* Задаёт start_hi_edge = 0x30; данные start_hi_edge. */
#define start_hi_edge 0x30
/* Задаёт start_lo_edge = 0x48; данные start_lo_edge. */
#define start_lo_edge 0x48
/* Задаёт sens_error = ((ERROR *)(modbus+start_error)); sens ошибка. */
#define sens_error ((ERROR *)(modbus+start_error))
/* Задаёт sens_data = (modbus+start_data); sens данные. */
#define sens_data (modbus+start_data)
/* Задаёт sens_hi_edge = (modbus+start_hi_edge); данные sens_hi_edge. */
#define sens_hi_edge (modbus+start_hi_edge)
/* Задаёт sens_lo_edge = (modbus+start_lo_edge); данные sens_lo_edge. */
#define sens_lo_edge (modbus+start_lo_edge)
/* Задаёт InputRep0 = Modbus[0].bit.bitA; вход Rep 0. */
#define InputRep0 Modbus[0].bit.bitA
/* Задаёт InputRep1 = Modbus[0].bit.bitB; вход Rep 1. */
#define InputRep1 Modbus[0].bit.bitB
/* Задаёт InputRep2 = Modbus[0].bit.bitC; вход Rep 2. */
#define InputRep2 Modbus[0].bit.bitC
/* Задаёт Inputs = Modbus[0x10]; данные Inputs. */
#define Inputs Modbus[0x10]
/* Задаёт Buttons = Modbus[0x16]; данные Buttons. */
#define Buttons Modbus[0x16]
/* Задаёт Jumpers = modbus[0x17]; данные Jumpers. */
#define Jumpers modbus[0x17]
/* Задаёт bTestLamp = Buttons.bit.bit0; данные bTestLamp. */
#define bTestLamp Buttons.bit.bit0
/* Задаёт bSecretBt = Buttons.bit.bit1; данные bSecretBt. */
#define bSecretBt Buttons.bit.bit1
/* Задаёт bTermoCal = Buttons.bit.bit2; данные bTermoCal. */
#define bTermoCal Buttons.bit.bit2
// Пришло врема!
/* Задаёт DAC_go = modbus[0x50]; начальный ток нагрузки в мА, технологический регистр 0x50. */
#define DAC_go modbus[0x50] // начало зарада
/* Задаёт DAC_stop = modbus[0x51]; конечный ток нагрузки в мА, технологический регистр 0x51. */
#define DAC_stop modbus[0x51] // конец зарада
/* На плате LOAD тайм-аут и лимит попыток сохраняются штатной командой Save; состояние защиты доступно только для чтения. */
/* Задаёт LOAD_CAN_TIMEOUT = modbus[0x52]; сохраняемый тайм-аут свежести напряжения CAN в миллисекундах, регистр 0x52. */
#define LOAD_CAN_TIMEOUT modbus[0x52]
/* Задаёт LOAD_STATUS = modbus[0x7C]; слово состояния защиты нагрузки для чтения, регистр 0x7C. */
#define LOAD_STATUS modbus[0x7C]
/* Задаёт записываемый лимит общего числа пусков в регистре 0x7D; допустимы 1..65535 попыток, включая первый START. */
#define LOAD_MAX_ATTEMPTS modbus[0x7D]
/* Сохраняет прежний заводской предел пяти пусков для сброса настроек и замены нуля из старой EEPROM. */
#define LOAD_DEFAULT_MAX_ATTEMPTS 5U
/* Задаёт Cancount = (modbus+0x60); данные Cancount. */
#define Cancount (modbus+0x60) // пауза между I посылками CAN
/* Задаёт Bright = (modbus+0x62); данные Bright. */
#define Bright (modbus+0x62) // аркость сигнальных лампочек
/* Задаёт Brightness = modbus[0x62]; данные Brightness. */
#define Brightness modbus[0x62] // аркость сигнальных лампочек
/* Задаёт Owncount = modbus[0x63]; данные Owncount. */
#define Owncount modbus[0x63] // пауза между опросами OWEN
/* Задаёт m_FAST = 0; данные m_FAST. */
#define m_FAST 0
/* Задаёт m_SLOW = 1; данные m_SLOW. */
#define m_SLOW 1
/* Задаёт Zero_lev = (modbus+0x70); данные Zero_lev. */
#define Zero_lev (modbus+0x70)
/* Задаёт DAC_20 = modbus[0x6E]; ЦАП 20. */
#define DAC_20 modbus[0x6E]
/* Задаёт DAC_04 = modbus[0x6F]; ЦАП 04. */
#define DAC_04 modbus[0x6F]
/* Задаёт DAC_max = modbus[0x78]; ЦАП max. */
#define DAC_max() modbus[0x78] // 751//0x0000 804
/* Задаёт DAC_min = modbus[0x79]; ЦАП min. */
#define DAC_min() modbus[0x79] // 2162//0x0FFF 2373
/* Задаёт DAC_cal = modbus[0x7A]; ЦАП cal. */
#define DAC_cal() modbus[0x7A]
/* Задаёт Caliber = (modbus+0x74); данные Caliber. */
#define Caliber (modbus+0x74)
/* Задаёт K380_1 = Caliber[0]; данные K380_1. */
#define K380_1 Caliber[0]
/* Задаёт K380_2 = Caliber[1]; данные K380_2. */
#define K380_2 Caliber[1]
/* Задаёт KPOW_1 = Caliber[0]; данные KPOW_1. */
#define KPOW_1 Caliber[0]
/* Задаёт KPOW_2 = Caliber[1]; данные KPOW_2. */
#define KPOW_2 Caliber[1]
/* Задаёт KPOW_3 = Caliber[2]; данные KPOW_3. */
#define KPOW_3 Caliber[2]
/* Задаёт KPOW_4 = Caliber[3]; данные KPOW_4. */
#define KPOW_4 Caliber[3]
/* Задаёт NormaU = Caliber[8]; данные NormaU. */
#define NormaU Caliber[8]
/* Задаёт DeltaU = Caliber[9]; данные DeltaU. */
#define DeltaU Caliber[9]
/* Задаёт TCaliber = (modbus+0x78); данные TCaliber. */
#define TCaliber (modbus+0x78)
/* Задаёт K300_1 = TCaliber[0]; данные K300_1. */
#define K300_1 TCaliber[0]
/* Задаёт K300_2 = TCaliber[1]; данные K300_2. */
#define K300_2 TCaliber[1]
/* Задаёт K400_1 = TCaliber[2]; данные K400_1. */
#define K400_1 TCaliber[2]
/* Задаёт K400_2 = TCaliber[3]; данные K400_2. */
#define K400_2 TCaliber[3]
/* Задаёт K100_1 = TCaliber[0]; данные K100_1. */
#define K100_1 TCaliber[0]
/* Задаёт K100_2 = TCaliber[1]; данные K100_2. */
#define K100_2 TCaliber[1]
/* Задаёт K150_1 = TCaliber[2]; данные K150_1. */
#define K150_1 TCaliber[2]
/* Задаёт K150_2 = TCaliber[3]; данные K150_2. */
#define K150_2 TCaliber[3]
/* Задаёт K100_D = TCaliber[0]; данные K100_D. */
#define K100_D TCaliber[0]
/* Задаёт K150_D = TCaliber[1]; данные K150_D. */
#define K150_D TCaliber[1]
/* Задаёт LastMode = Modbus[126].all; последний режим платы, технологический регистр 126. */
#define LastMode Modbus[126].all
/* Задаёт Commands = Modbus[127].all; слово команд, технологический регистр 127. */
#define Commands Modbus[127].all
/* Задаёт cTestLamp = Modbus[127].bit.bit0; данные cTestLamp. */
#define cTestLamp Modbus[127].bit.bit0
/* Задаёт cDefParam = Modbus[127].bit.bit1; данные cDefParam. */
#define cDefParam Modbus[127].bit.bit1
/* Задаёт cSaveParam = Modbus[127].bit.bit2; данные cSaveParam. */
#define cSaveParam Modbus[127].bit.bit2
/* Задаёт cLoadParam = Modbus[127].bit.bit3; данные cLoadParam. */
#define cLoadParam Modbus[127].bit.bit3
/* Задаёт cTermoCal = Modbus[127].bit.bit4; данные cTermoCal. */
#define cTermoCal Modbus[127].bit.bit4
/* Задаёт cKoefCalc = Modbus[127].bit.bit5; данные cKoefCalc. */
#define cKoefCalc Modbus[127].bit.bit5
/* Задаёт cUMPreset = Modbus[127].bit.bit6; данные cUMPreset. */
#define cUMPreset Modbus[127].bit.bit6
/* Задаёт cUMPstart = Modbus[127].bit.bit7; данные cUMPstart. */
#define cUMPstart Modbus[127].bit.bit7
/* Задаёт cInitDac = Modbus[127].bit.bit8; c Init ЦАП. */
#define cInitDac Modbus[127].bit.bit8
/* Задаёт cCalibrDac = Modbus[127].bit.bit9; c Calibr ЦАП. */
#define cCalibrDac Modbus[127].bit.bit9
/* Задаёт cSecretBt = Modbus[127].bit.bitA; данные cSecretBt. */
#define cSecretBt Modbus[127].bit.bitA
/* Задаёт cLiteFire = Modbus[127].bit.bitB; данные cLiteFire. */
#define cLiteFire Modbus[127].bit.bitB
/* Задаёт cRawMeat = Modbus[127].bit.bitC; данные cRawMeat. */
#define cRawMeat Modbus[127].bit.bitC
/* Задаёт cReset = Modbus[127].bit.bitF; c сброс. */
#define cReset Modbus[127].bit.bitF
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif //PACKAGE