00001
00002
00010
00011 #ifndef __CVT_V812_DEF_H
00012 #define __CVT_V812_DEF_H
00013
00015
00017 #include "cvt_common_defs.h"
00018 #include "cvt_board_commons.h"
00020
00022
00024
00030
00031 typedef struct
00032 {
00033 cvt_board_data m_common_data;
00034
00035
00036
00037
00038 } cvt_V812_data;
00039
00041
00043 #define CVT_V812_THRESHOLD_0_ADD 0x0000
00044 #define CVT_V812_THRESHOLD_1_ADD 0x0002
00045 #define CVT_V812_THRESHOLD_2_ADD 0x0004
00046 #define CVT_V812_THRESHOLD_3_ADD 0x0006
00047 #define CVT_V812_THRESHOLD_4_ADD 0x0008
00048 #define CVT_V812_THRESHOLD_5_ADD 0x000A
00049 #define CVT_V812_THRESHOLD_6_ADD 0x000C
00050 #define CVT_V812_THRESHOLD_7_ADD 0x000E
00051 #define CVT_V812_THRESHOLD_8_ADD 0x0010
00052 #define CVT_V812_THRESHOLD_9_ADD 0x0012
00053 #define CVT_V812_THRESHOLD_10_ADD 0x0014
00054 #define CVT_V812_THRESHOLD_11_ADD 0x0016
00055 #define CVT_V812_THRESHOLD_12_ADD 0x0018
00056 #define CVT_V812_THRESHOLD_13_ADD 0x001A
00057 #define CVT_V812_THRESHOLD_14_ADD 0x001C
00058 #define CVT_V812_THRESHOLD_15_ADD 0x001E
00059 #define CVT_V812_OUT_WIDTH_0_7_ADD 0x0040
00060 #define CVT_V812_OUT_WIDTH_8_15_ADD 0x0042
00061 #define CVT_V812_DEAD_TIME_0_7_ADD 0x0044
00062 #define CVT_V812_DEAD_TIME_8_15_ADD 0x0046
00063 #define CVT_V812_MAJORITY_ADD 0x0048
00064 #define CVT_V812_PATTERN_INHIBIT_ADD 0x004A
00065 #define CVT_V812_TEST_PULSE_ADD 0x004C
00066 #define CVT_V812_FIXED_CODE_ADD 0x00FA
00067 #define CVT_V812_MANUFACTURER_ADD 0x00FC
00068 #define CVT_V812_VERSION_ADD 0x00FD
00070 #define CVT_V812_THRESHOLD_ADD_STEP 2
00072
00073 // Registers data size
00074
00075 #define CVT_V812_THRESHOLD_DATA_SIZE cvD16
00076 #define CVT_V812_OUT_WIDTH_0_7_DATA_SIZE cvD16
00077 #define CVT_V812_OUT_WIDTH_8_15_DATA_SIZE cvD16
00078 #define CVT_V812_DEAD_TIME_0_7_DATA_SIZE cvD16
00079 #define CVT_V812_DEAD_TIME_8_15_DATA_SIZE cvD16
00080 #define CVT_V812_MAJORITY_DATA_SIZE cvD16
00081 #define CVT_V812_PATTERN_INHIBIT_DATA_SIZE cvD16
00082 #define CVT_V812_TEST_PULSE_DATA_SIZE cvD16
00083 #define CVT_V812_FIXED_CODE_DATA_SIZE cvD16
00084 #define CVT_V812_MANUFACTURER_DATA_SIZE cvD16
00085 #define CVT_V812_VERSION_DATA_SIZE cvD16
00087
00088 // Registers address modifiers
00089
00090 #define CVT_V812_THRESHOLD_AM cvA32_S_DATA
00091 #define CVT_V812_OUT_WIDTH_0_7_AM cvA32_S_DATA
00092 #define CVT_V812_OUT_WIDTH_8_15_AM cvA32_S_DATA
00093 #define CVT_V812_DEAD_TIME_0_7_AM cvA32_S_DATA
00094 #define CVT_V812_DEAD_TIME_8_15_AM cvA32_S_DATA
00095 #define CVT_V812_MAJORITY_AM cvA32_S_DATA
00096 #define CVT_V812_PATTERN_INHIBIT_AM cvA32_S_DATA
00097 #define CVT_V812_TEST_PULSE_AM cvA32_S_DATA
00098 #define CVT_V812_FIXED_CODE_AM cvA32_S_DATA
00099 #define CVT_V812_MANUFACTURER_AM cvA32_S_DATA
00100 #define CVT_V812_VERSION_AM cvA32_S_DATA
00102
00103
00108
00109 typedef enum
00110 {
00111 CVT_V812_THRESHOLD_0_INDEX,
00112 CVT_V812_THRESHOLD_1_INDEX,
00113 CVT_V812_THRESHOLD_2_INDEX,
00114 CVT_V812_THRESHOLD_3_INDEX,
00115 CVT_V812_THRESHOLD_4_INDEX,
00116 CVT_V812_THRESHOLD_5_INDEX,
00117 CVT_V812_THRESHOLD_6_INDEX,
00118 CVT_V812_THRESHOLD_7_INDEX,
00119 CVT_V812_THRESHOLD_8_INDEX,
00120 CVT_V812_THRESHOLD_9_INDEX,
00121 CVT_V812_THRESHOLD_10_INDEX,
00122 CVT_V812_THRESHOLD_11_INDEX,
00123 CVT_V812_THRESHOLD_12_INDEX,
00124 CVT_V812_THRESHOLD_13_INDEX,
00125 CVT_V812_THRESHOLD_14_INDEX,
00126 CVT_V812_THRESHOLD_15_INDEX,
00127 CVT_V812_OUT_WIDTH_0_7_INDEX,
00128 CVT_V812_OUT_WIDTH_8_15_INDEX,
00129 CVT_V812_DEAD_TIME_0_7_INDEX,
00130 CVT_V812_DEAD_TIME_8_15_INDEX,
00131 CVT_V812_MAJORITY_INDEX,
00132 CVT_V812_PATTERN_INHIBIT_INDEX,
00133 CVT_V812_TEST_PULSE_INDEX,
00134 CVT_V812_FIXED_CODE_INDEX,
00135 CVT_V812_MANUFACTURER_INDEX,
00136 CVT_V812_VERSION_INDEX,
00137 } CVT_V812_REG_INDEX;
00138
00139
00140 #define CVT_V812_FIXED_CODE_VALUE 0xFAF5
00141 #define CVT_V812_MANUFACTURER_NUMBER_VALUE 0x02
00142 #define CVT_V812_MODULE_TYPE_VALUE 0x0051
00144
00145
00148
00149 typedef enum
00150 {
00151 CVT_V812_THRESHOLD_ALL= -1,
00152 CVT_V812_THRESHOLD_0= 0,
00153 CVT_V812_THRESHOLD_1,
00154 CVT_V812_THRESHOLD_2,
00155 CVT_V812_THRESHOLD_3,
00156 CVT_V812_THRESHOLD_4,
00157 CVT_V812_THRESHOLD_5,
00158 CVT_V812_THRESHOLD_6,
00159 CVT_V812_THRESHOLD_7,
00160 CVT_V812_THRESHOLD_8,
00161 CVT_V812_THRESHOLD_9,
00162 CVT_V812_THRESHOLD_10,
00163 CVT_V812_THRESHOLD_11,
00164 CVT_V812_THRESHOLD_12,
00165 CVT_V812_THRESHOLD_13,
00166 CVT_V812_THRESHOLD_14,
00167 CVT_V812_THRESHOLD_15,
00168
00169 CVT_V812_MAX_THRESHOLD
00170 } cvt_V812_threshold_id ;
00171
00172 #define CVT_V812_THRESHOLD_ADD_STEP 2
00174
00175 // Global variables declaration
00176
00177
00179
00181
00183
00184
00185
00187
00188
00190
00200
00201 BOOL cvt_V812_open( cvt_V812_data* p_data, UINT16 base_address, long vme_handle);
00202
00204
00212
00213 BOOL cvt_V812_close( cvt_V812_data* p_data);
00214
00216
00217
00218
00220
00221
00223
00224
00225
00227
00229
00240
00241 BOOL cvt_V812_set_threshold( cvt_V812_data* p_data, cvt_V812_threshold_id threshold_id, UINT16 value);
00242
00244
00252
00253 BOOL cvt_V812_set_output_width( cvt_V812_data* p_data, UINT8 value);
00254
00256
00264
00265 BOOL cvt_V812_set_dead_time( cvt_V812_data* p_data, UINT8 value);
00266
00268
00276
00277 BOOL cvt_V812_set_majority_threshold( cvt_V812_data* p_data, UINT8 value);
00278
00280
00288
00289 BOOL cvt_V812_set_pattern_inhibit( cvt_V812_data* p_data, UINT16 value);
00290
00292
00299
00300 BOOL cvt_V812_set_test_pulse( cvt_V812_data* p_data);
00301
00303
00312
00313 BOOL cvt_V812_get_fixed_code( cvt_V812_data* p_data, UINT16 *p_value);
00314
00316
00325
00326 BOOL cvt_V812_get_manufacturer_number( cvt_V812_data* p_data, UINT8 *p_value);
00327
00329
00338
00339 BOOL cvt_V812_get_module_type( cvt_V812_data* p_data, UINT16 *p_value);
00340
00342
00350
00351 BOOL cvt_V812_get_version( cvt_V812_data* p_data, UINT8 *p_value);
00352
00354
00363
00364 BOOL cvt_V812_get_serial_number( cvt_V812_data* p_data, UINT16 *p_value);
00365
00367
00368
00369
00371
00372 #endif