Go to the documentation of this file.00001 #ifndef TRIGLOGLIB_H
00002 #define TRIGLOGLIB_H
00003
00004
00005
00006 #define T_LOG_DEL_1 0x4 //delay spill off pulse
00007
00008
00009 #define T_LOG_LMU_1 0x8
00010 #define T_LOG_LMU_2 0xc
00011 #define T_LOG_LMU_3 0x10
00012 #define T_LOG_LMU_4 0x14
00013 #define T_LOG_LMU_5 0x18
00014 #define T_LOG_LMU_6 0x1c
00015 #define T_LOG_LMU_7 0x20
00016 #define T_LOG_LMU_8 0x24
00017 #define T_LOG_LMU_9 0x28
00018 #define T_LOG_LMU_a 0x2c
00019 #define T_LOG_LMU_b 0x30
00020 #define T_LOG_LMU_c 0x34
00021 #define T_LOG_LMU_d 0x38
00022 #define T_LOG_LMU_e 0x3c
00023 #define T_LOG_LMU_f 0x40
00024 #define T_LOG_LMU_g 0x44
00025
00026
00027 #define T_LOG_TBOX_ENA 0x48
00028 #define T_LOG_TBOX_SCALL 0x4c
00029 #define T_LOG_TBOX_SCALH 0x50
00030
00031
00032 #define T_LOG_SW_L 0x54
00033 #define T_LOG_SW_H 0x58
00034
00035 #define T_LOG_RES 0x5c //reset scaler + sync scaler
00036
00037 #define T_LOG_SC_LATCH 0x60 //latch scaler
00038 #define T_LOG_INT_TDT 0x64 //internal deadtime
00039 #define T_LOG_ECO 0x68 //switch signals to hpla output
00040 #define T_LOG_EXT_INT_RES 0x6c //internal external reset
00041
00042
00043 #define T_LOG_PULS_IN 0x70
00044 #define T_LOG_FREQU_1 0x74
00045 #define T_LOG_FREQU_2 0x78
00046 #define T_LOG_FREQU_3 0x7c
00047
00048 #define T_LOG_SOFTTRIG 0x80 //Software Trigger
00049 #define T_LOG_RES_DOUT 0x84 //reset for data out register
00050
00051 #define T_LOG_RES_SYNC 0x88 //reset for sync scaler
00052 #define T_LOG_PULS 0x8c // ECO PULS out via vme command
00053
00054 #define T_LOG_SCAL_1 0x8c
00055 #define T_LOG_SCAL_2 0xcc
00056 #define T_LOG_SCAL_3 0x10c
00057 #define T_LOG_SCAL_4 0x14c
00058 #define T_LOG_SCAL_5 0x18c
00059 #define T_LOG_SCAL_FC 0x1d0
00060 #define T_LOG_TRIG_PAT 0x1d4
00061
00062 #define T_LOG_SYNC_SCAL 0x1d8
00063 #define T_LOG_INPUT_PAT 0x1dc
00064
00065
00066 typedef struct {
00067 long volatile *pl_reset;
00068 long volatile *pl_tb_ena;
00069 long volatile *pl_tb_reduc1;
00070 long volatile *pl_tb_reduc2;
00071 long volatile *pl_d_latch;
00072 long volatile *pl_tb_version;
00073 long volatile *pl_soft_trig;
00074 long volatile *pl_scal1[16];
00075 long volatile *pl_scal2[16];
00076 long volatile *pl_scal3[16];
00077 long volatile *pl_scal4[16];
00078 long volatile *pl_scal5[16];
00079 long volatile *pl_scal_fc;
00080 long volatile *pl_trig_pat;
00081 long volatile *pl_input_pat;
00082 long volatile *pl_frequ_1;
00083 long volatile *pl_res_dout;
00084
00085
00086
00087 long volatile *ev_reset;
00088
00089 long volatile *ev_counter;
00090
00091
00092 long volatile *pl_eclout_pulse;
00093
00094 long sync_counter;
00095 long last_sync_counter;
00096
00097 } s_triglog;
00098
00099 void triglog_getptr(long l_virt_base, s_triglog* ps);
00100
00101 void triglog_init(s_triglog* ps);
00102
00103 long triglog_read(long* pl_dat, s_triglog* ps);
00104
00105 void triglog_send_ecl_pulse(s_triglog* ps);
00106
00107 void triglog_reset_scalers(s_triglog* ps);
00108 void triglog_reset_sync(s_triglog* ps);
00109
00110 #endif