matlab_23550/Inu/Src/N12_Xilinx/xp_adc.h
Razvalyaev 7e0063eee0 #3 Скомпилилось, но пока ничего не вызывается
Все основные файлы подтянуты без изменений

Изменены (только папка main_matlab):
- заглушки для ненужных функций (main_matlab.c)
- iq библиотека (IQmathLib_matlab.c)
- библиотеки DSP281x
2025-01-13 11:09:58 +03:00

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