Files
E502_ADC_BFfirmware/src/l502_params.h

80 lines
3.5 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.

/** @defgroup config_params Настройки сбора данных модуля */
/***************************************************************************//**
@addtogroup config_params
@{
@file l502_params.h
Файл содержит определение структур, описывающих текущие
настройки сбора данных для модуля и объявляет
внешнюю переменную g_set, содержащую эти параметры
*******************************************************************************/
#ifndef L502_PARAMS_H_
#define L502_PARAMS_H_
#include "l502_defs.h"
/** Калибровочные коэффициенты ЦАП */
typedef struct {
float offs; /**< Смещение нуля */
float k; /**< Коэффициент шкалы */
} t_dac_cbr_coef;
/** Информация о используемом модуле */
typedef struct {
uint32_t devflags; /**< Флаги с информацией о наличии опций и сост. модуля */
uint16_t fpga_ver; /**< Версия FPGA */
uint8_t plda_ver; /**< Версия PLDA */
t_dac_cbr_coef dac_cbr[L502_DAC_CH_CNT]; /**< Коэффициенты ЦАП */
} t_module_info;
/** Параметры логического канала */
typedef struct {
uint8_t phy_ch; /**< Номер физического канала */
uint8_t mode; /**< Режим сбора */
uint8_t range; /**< Диапазон */
uint8_t avg; /**< Коэф. усреднения */
uint32_t flags; /**< Доп. флаги */
} t_lch;
/** Настройки сбора данных */
typedef struct {
/** Таблица логических каналов */
t_lch lch[L502_LTABLE_MAX_CH_CNT];
uint16_t lch_cnt; /**< Количество каналов в лог. таблице */
uint32_t adc_freq_div; /**< Делитель частоты АЦП */
uint32_t din_freq_div; /**< Делитель частоты для цифрового входа */
uint32_t adc_frame_delay; /**< Межкадровая задержка */
uint32_t ref_freq; /**< Значение опорной частоты (2 или 1.5 МГц) или внешняя */
uint16_t out_freq_div; /**< Делитель частоты вывода */
uint8_t sync_mode; /**< Режим синхронизации для опорной частоты */
uint8_t sync_start_mode; /**< Режим запуска сигнала синхронизации */
} t_settings;
/** Структура, содержащая текущие настройки сбора данных */
extern t_settings g_set;
/** Структура, содержащая информацию о модуле */
extern t_module_info g_module_info;
int32_t configure(void);
int32_t params_set_lch_cnt(uint32_t lch_cnt);
int32_t params_set_lch(uint32_t index, uint32_t ch, t_l502_lch_mode mode,
t_l502_adc_range range, uint32_t avg, uint32_t flags);
int32_t params_set_adc_freq_div(uint32_t div);
int32_t params_set_adc_interframe_delay(uint32_t delay);
int32_t params_set_ref_freq(uint32_t freq_code);
int32_t params_set_sync_mode(t_l502_sync_mode sync_mode);
int32_t params_set_sync_start_mode(t_l502_sync_mode sync_mode);
int32_t params_set_din_freq_div(uint32_t div);
int32_t params_set_dac_freq_div(uint32_t div);
int32_t params_set_dac_freq_div(uint32_t div);
#endif
/** @} */