Razvalyaev
7e0063eee0
Все основные файлы подтянуты без изменений Изменены (только папка main_matlab): - заглушки для ненужных функций (main_matlab.c) - iq библиотека (IQmathLib_matlab.c) - библиотеки DSP281x
268 lines
7.2 KiB
C
268 lines
7.2 KiB
C
#ifndef XP_ADC_H
|
|
#define XP_ADC_H
|
|
|
|
#include "x_basic_types.h"
|
|
#include "xp_cds_status_bus.h"
|
|
#include "xp_id_plate_info.h"
|
|
|
|
#define T_ADC_COUNT_ADR_PBUS 16 // count max elements in parallel bus
|
|
|
|
#define T_ADC_SETUP_USE_ADR_PBUS 0xffff // ïî óìîë÷àíèþ - íàñòðîéêà êàêèå ðåãèñòðû èñïîëüçîâàòü äëß PBUS, 0xffff - âñå âîçìîæíûå
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
// read reg serial bus
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
typedef struct {
|
|
//0
|
|
UInt16 test;
|
|
//6
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct
|
|
{
|
|
UInt16 reserv :14;
|
|
UInt16 err_switch :1;
|
|
UInt16 enable_err_power :1;
|
|
} bit;
|
|
} protect_error;
|
|
//7
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct
|
|
{
|
|
UInt16 reserv :14;
|
|
UInt16 err_switch :1;
|
|
UInt16 err_power :1;
|
|
} bit;
|
|
} lock_status_error;
|
|
|
|
//14
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct
|
|
{
|
|
UInt16 revision :5;
|
|
UInt16 version :6;
|
|
T_plate_type plate_type :5;
|
|
} bit;
|
|
} id_plate;
|
|
|
|
//15
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct
|
|
{
|
|
UInt16 reserv :14;
|
|
UInt16 err_switch :1;
|
|
UInt16 err_power :1;
|
|
} bit;
|
|
} current_status_error;
|
|
|
|
} T_adc_read_sbus;
|
|
|
|
#define T_ADC_READ_SBUS_DEFAULTS {0,0,0,0,0}
|
|
/////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
//read reg serial bus
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
typedef struct {
|
|
//0
|
|
UInt16 test;
|
|
|
|
//6
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct
|
|
{
|
|
UInt16 reserv :14;
|
|
UInt16 err_switch :1;
|
|
UInt16 enable_err_power :1;
|
|
} bit;
|
|
} protect_error;
|
|
|
|
//7
|
|
UInt16 cmd_reset_error;
|
|
|
|
} T_adc_write_sbus;
|
|
|
|
#define T_ADC_WRITE_SBUS_DEFAULTS {0,0,0}
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
//read reg parallel bus
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
typedef struct {
|
|
UInt16 adc_value[T_ADC_COUNT_ADR_PBUS];
|
|
} T_adc_read_pbus;
|
|
|
|
#define T_ADC_READ_PBUS_DEFAULTS {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
// Table for adr parallel bus
|
|
/////////////////////////////////////////////////////////////
|
|
typedef struct {
|
|
UInt16 adr_table[T_ADC_COUNT_ADR_PBUS];
|
|
} T_adc_adr_pbus;
|
|
|
|
#define T_ADC_ADR_PBUS_DEFAULTS {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
|
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
//setup parallel bus
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
typedef struct {
|
|
UInt16 count_elements_pbus;
|
|
// use_or_not?
|
|
union
|
|
{
|
|
UInt16 all;
|
|
struct{
|
|
UInt16 reg0 : 1;
|
|
UInt16 reg1 : 1;
|
|
UInt16 reg2 : 1;
|
|
UInt16 reg3 : 1;
|
|
|
|
UInt16 reg4 : 1;
|
|
UInt16 reg5 : 1;
|
|
UInt16 reg6 : 1;
|
|
UInt16 reg7 : 1;
|
|
|
|
UInt16 reg8 : 1;
|
|
UInt16 reg9 : 1;
|
|
UInt16 reg10 : 1;
|
|
UInt16 reg11 : 1;
|
|
|
|
UInt16 reg12 : 1;
|
|
UInt16 reg13 : 1;
|
|
UInt16 reg14 : 1;
|
|
UInt16 reg15 : 1;
|
|
}bit;
|
|
} use_reg_in_pbus;
|
|
|
|
} T_adc_setup_pbus;
|
|
|
|
#define T_ADC_SETUP_PBUS_DEFAULTS {T_ADC_COUNT_ADR_PBUS,T_ADC_SETUP_USE_ADR_PBUS}
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
typedef struct{
|
|
T_adc_read_pbus pbus;
|
|
T_adc_read_sbus sbus;
|
|
Int16 type_cds_xilinx;
|
|
} T_adc_read;
|
|
|
|
typedef struct{
|
|
T_adc_write_sbus sbus;
|
|
} T_adc_write;
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
typedef struct TS_adc{
|
|
UInt16 plane_address; // 0 to 15
|
|
UInt16 useit;
|
|
Int16 type_cds_xilinx;
|
|
T_adc_setup_pbus setup_pbus;
|
|
T_cds_status_serial_bus status_serial_bus;
|
|
T_cds_status_parallel_bus status_parallel_bus;
|
|
T_component_status status;
|
|
T_local_status local_status;
|
|
|
|
T_adc_write write;
|
|
T_adc_read read;
|
|
T_adc_adr_pbus adr_pbus;
|
|
|
|
UInt16 store_protect_error;
|
|
|
|
UInt16 timer_wait_load;
|
|
|
|
void (*init)(); // Pointer to calculation function
|
|
|
|
int (*read_all)(); // Pointer to calculation function
|
|
int (*write_all)(); // Pointer to calculation function
|
|
|
|
int (*read_sbus)(); // Pointer to calculation function
|
|
int (*write_sbus)(); // Pointer to calculation function
|
|
|
|
int (*read_pbus)(); // Pointer to calculation function
|
|
int (*write_pbus)(); // Pointer to calculation function
|
|
|
|
void (*reset_error)(); // Pointer to calculation function
|
|
void (*store_disable_error)(); // Pointer to calculation function
|
|
void (*restore_enable_error)(); // Pointer to calculation function
|
|
|
|
} T_adc;
|
|
|
|
typedef T_adc *T_adc_handle;
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
Default initalizer for object.
|
|
-----------------------------------------------------------------------------*/
|
|
#define T_adc_DEFAULTS { 0,\
|
|
0,\
|
|
TYPE_CDS_XILINX_DEFAULTS,\
|
|
T_ADC_SETUP_PBUS_DEFAULTS, \
|
|
T_cds_status_serial_bus_DEFAULT,\
|
|
T_cds_status_parallel_bus_DEFAULT,\
|
|
component_NotReady,\
|
|
local_status_NotReady,\
|
|
T_ADC_WRITE_SBUS_DEFAULTS,\
|
|
{T_ADC_READ_PBUS_DEFAULTS,T_ADC_READ_SBUS_DEFAULTS,TYPE_CDS_XILINX_DEFAULTS},\
|
|
T_ADC_ADR_PBUS_DEFAULTS,\
|
|
0,\
|
|
0, \
|
|
(void (*)(Uint32))adc_init, \
|
|
(int (*)(Uint32))adc_read_all, \
|
|
(int (*)(Uint32))adc_write_all, \
|
|
(int (*)(Uint32))adc_read_sbus, \
|
|
(int (*)(Uint32))adc_write_sbus, \
|
|
(int (*)(Uint32))adc_read_pbus_without_cycle, \
|
|
(int (*)(Uint32))adc_write_pbus, \
|
|
(void (*)(Uint32))adc_reset_error, \
|
|
(void (*)(Uint32))adc_store_disable_error, \
|
|
(void (*)(Uint32))adc_restore_enable_error \
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////
|
|
void adc_init(T_adc_handle);
|
|
|
|
int adc_read_all(T_adc_handle);
|
|
int adc_write_all(T_adc_handle);
|
|
|
|
int adc_read_sbus(T_adc_handle);
|
|
int adc_write_sbus(T_adc_handle);
|
|
|
|
int adc_read_pbus(T_adc_handle);
|
|
int adc_write_pbus(T_adc_handle);
|
|
int adc_read_pbus_without_cycle(T_adc_handle);
|
|
|
|
void adc_reset_error(T_adc_handle);
|
|
void adc_store_disable_error(T_adc_handle);
|
|
void adc_restore_enable_error(T_adc_handle);
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Return Type
|
|
//------------------------------------------------------------------------------
|
|
|
|
#endif
|