Ответ:
// Так можно объявить структуру 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; }