Ответ:
// Так можно объявить структуру
typedef struct // Константы, меняемые при регулировке
{ unsigned short Firm_number; // заводской номер прибора
unsigned short Firmware_ver; // версия по прибора
double M_press;
float accuracy[bas_cnt];
float auto_zero_val[bas_cnt];
ser_io_koef net_param;
press_difference Press_diff;
FLAG ini_flag;
} Flash_Constant;
// в файле, где инициализируем
#pragma constseg = INFO // const Flash_Constant f_const
// можно любой другой сегмент объявить в файле *.xls
// но не забыть при стирании/записи,
// что размеры сегментов INFOA, INFOB - по 128 байт
// сегмент 0x1100..0x11ff = 256 байт, все остальные = 512 байт
const Flash_Constant f_const =
{
// Firm_number
10083, // заводской номер прибора
// Firmware_ver
90, // версия по
// M_press
112241.676452499,
// accuracy[bas_cnt]
{ 0.01,
1.,
0.01
},
// auto_zero_val[bas_cnt]
{ 0.003,
2.0,
0.007
},
// net_param
{ 10, B_1200 },
// Параметры press_difference
{ 1500,
70,
2
},
// ini_flag - Флаги
{
// Служебные, редактировать запрещено
OFF, // flt_prg
OFF, // ini_measure
OFF, // enable_calk
ON, // enable_ind
OFF, // OSCFault_isr
OFF, // m_prtcl
OFF, // enable_temp_f
OFF, // enable_temp_q
OFF, // cls_term
OFF, // low_flow
OFF, // uart0_tx_run
OFF, // uart1_tx_run
ON, // auto_zero
ON, // enable_dyna
OFF, // view_Prp
OFF, // view_ADC
OFF, // debug
ON // channel_P
}
};
#pragma constseg = default
// в других файлах, где применяем
extern const Flash_Constant f_const;
/////////////////////////////////////
// используем:
volatile FLAG flag;
flag = f_const.ini_flag; // Проинициализируем все флаги оптом
......
flag.OSCFault_isr = ON;
......
do
{ flag.flt_prg = OFF;
c = cur_measure.Zn[a];
} while ( flag.flt_prg == ON );
.......
if ( flag.debug == ON )
{ flag.enable_ind = OFF;
printf( "......" );
delay( 1500 );
flag.cls_term = ON;
flag.enable_ind = ON;
}