matlab_23550/Inu/Src/N12_Xilinx/xp_controller.h

145 lines
3.8 KiB
C
Raw Normal View History

#ifndef X_CONTROLLER_H
#define X_CONTROLLER_H
#include "x_basic_types.h"
#include "xp_id_plate_info.h"
#include "xp_plane_adr.h"
//#include "xp_controller_fpga.h"
//#include "xp_controller_cpld.h"
//#include "x_command.h"
/*-----------------------------------------------------------------------------
Define the types
-----------------------------------------------------------------------------*/
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
// write reg
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
typedef struct {
//0
//
union
{
UInt16 all;
struct
{
UInt16 use_int13 :1;
UInt16 reserv :15;
} bit;
} setup;
} T_controller_write;
#define T_CONTROLLER_WRITE_DEFAULTS {0}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
// read reg
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
typedef struct {
union
{
UInt16 all;
struct
{
UInt16 reserv :9;
UInt16 errHWP_trig :1; //TODO: <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!
UInt16 pwm_wdog :1;
UInt16 errHWP :1;
UInt16 status_er0 :1;
UInt16 error_pbus :1;
UInt16 er0_trig :1; //er0+erHWP
UInt16 er0_out :1;
} bit;
} errors;
union
{
UInt16 all;
struct
{
UInt16 reserv0_3 :4;
UInt16 slave_addr_error :4; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
UInt16 count_error_pbus :4; // ParallelBus - number of errors. if errrors > failCnt then ER0 = active. (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 200<30>)
UInt16 reserv12 :1; //
UInt16 err_transmit_hwp_bus :1; // HWP data transmit fail
UInt16 err_sbus :1; // serialBus_Error
UInt16 sbus_updated :1; // serialBus_DataUpdated
} bit;
} errors_buses;
union
{
UInt16 all;
struct
{
UInt16 int13_inited :1;
UInt16 reserv0 :15;
} bit;
} status;
} T_controller_read;
#define T_CONTROLLER_READ_DEFAULTS {0,0,0}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
// main struct
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
typedef struct TS_controller
{
T_component_status status;
unsigned int build;
T_controller_write write;
T_controller_read read;
void (*init)(); // Pointer to calculation function
int (*read_all)(); // Pointer to calculation function
void (*enable_int13)(); // Pointer to calculation function
void (*disable_int13)(); // Pointer to calculation function
} T_controller;
typedef T_controller *T_controller_handle;
// command type
/*typedef enum {
controller_Command_ReadParameters = 1
} T_controller_Command;
*/
#define T_controller_DEFAULTS { component_NotReady,\
0,\
T_CONTROLLER_WRITE_DEFAULTS,\
T_CONTROLLER_READ_DEFAULTS,\
(void (*)(Uint32))controller_init,\
(int (*)(Uint32))controller_read_all,\
(void (*)(Uint32))controller_int13_enable,\
(void (*)(Uint32))controller_int13_disable\
}
/*------------------------------------------------------------------------------
Prototypes for the functions
------------------------------------------------------------------------------*/
void controller_init(T_controller_handle);
int controller_read_all(T_controller_handle);
//T_controller_read controller_read_errors(T_controller_handle);
void controller_int13_enable(T_controller_handle);
void controller_int13_disable(T_controller_handle);
#endif