9 uint8_t pdsr, uint8_t slp, uint8_t tstin)
11 uint8_t tmp_d = ((d<<4)&0xF0);
12 uint8_t tmp_d0 = (tmp_d & 0x80)>>3;
13 uint8_t tmp_d1 = (tmp_d & 0x40)>>1;
14 uint8_t tmp_d2 = (tmp_d & 0x20)<<1;
15 uint8_t tmp_d3 = (tmp_d & 0x10)<<3;
16 tmp_d = tmp_d0 + tmp_d1 + tmp_d2 + tmp_d3;
18 unsigned long chn_reg = (tmp_d&0xF0) + ((pcsr&0x01)<<3) + ((pdsr&0x01)<<2) + ((slp&0x01)<<1) + ((tstin&0x01)<<0);
20 std::bitset<8> bits(chn_reg);
21 size_t start_pos = (8*16+16)*chip + (16-chn)*8;
22 for(
size_t iBit=0; iBit < 8; iBit++)
24 BITS[iBit+start_pos-8] = bits[iBit];
28 uint8_t res4, uint8_t res3, uint8_t res2,
29 uint8_t res1, uint8_t res0, uint8_t clk0,
30 uint8_t clk1, uint8_t frqc, uint8_t engr,
31 uint8_t f0, uint8_t f1, uint8_t f2, uint8_t f3)
34 bits[ 0] = res0 & 0x1;
35 bits[ 1] = res1 & 0x1;
36 bits[ 2] = res2 & 0x1;
37 bits[ 3] = res3 & 0x1;
38 bits[ 4] = res4 & 0x1;
39 bits[ 5] = slsb & 0x1;
46 bits[12] = engr & 0x1;
47 bits[13] = frqc & 0x1;
48 bits[14] = clk1 & 0x1;
49 bits[15] = clk0 & 0x1;
51 size_t start_pos = (8*16+16)*chip + 16*8;
52 for(
size_t iBit=0; iBit < 16; iBit++)
54 BITS[iBit+start_pos] = bits[iBit];
58 uint8_t d, uint8_t pcsr, uint8_t pdsr,
59 uint8_t slp, uint8_t tstin, uint8_t f4, uint8_t f5,
60 uint8_t slsb, uint8_t res4, uint8_t res3,
61 uint8_t res2, uint8_t res1, uint8_t res0,
62 uint8_t clk0, uint8_t clk1, uint8_t frqc,
63 uint8_t engr, uint8_t f0, uint8_t f1,
64 uint8_t f2, uint8_t f3)
66 for (
size_t chn=0; chn<16; chn++)
68 set_ch(chip, chn, d, pcsr, pdsr, slp, tstin);
72 f4, f5, slsb, res4, res3, res2, res1, res0,
73 clk0, clk1, frqc, engr, f0, f1, f2, f3);
77 uint8_t slp, uint8_t tstin, uint8_t f4, uint8_t f5,
78 uint8_t slsb, uint8_t res4, uint8_t res3,
79 uint8_t res2, uint8_t res1, uint8_t res0,
80 uint8_t clk0, uint8_t clk1, uint8_t frqc,
81 uint8_t engr, uint8_t f0, uint8_t f1,
82 uint8_t f2, uint8_t f3)
85 for (
size_t chip=0; chip<8; chip++)
88 d, pcsr, pdsr, slp, tstin,
89 f4, f5, slsb, res4, res3, res2, res1, res0,
90 clk0, clk1, frqc, engr, f0, f1, f2, f3);
101 std::cout <<
"ADC_ASIC_reg_mapping (binary):" << std::endl;
102 std::string bitString =
BITS.to_string<char,std::string::traits_type,std::string::allocator_type>();
103 for(
size_t iLine=0; iLine < 36; iLine++)
105 for(
size_t iByte=0; iByte < 4; iByte++)
107 for(
size_t iBit=0; iBit < 8; iBit++)
109 std::cout << bitString[iLine*32+iByte*8+iBit];
113 std::cout << std::endl;
void set_global(uint8_t chip, uint8_t f4=0, uint8_t f5=0, uint8_t slsb=0, uint8_t res4=0, uint8_t res3=0, uint8_t res2=0, uint8_t res1=0, uint8_t res0=0, uint8_t clk0=0, uint8_t clk1=0, uint8_t frqc=0, uint8_t engr=0, uint8_t f0=0, uint8_t f1=0, uint8_t f2=0, uint8_t f3=0)
std::bitset< 1152 > get_bits() const
void set_board(uint8_t d=0, uint8_t pcsr=0, uint8_t pdsr=0, uint8_t slp=0, uint8_t tstin=0, uint8_t f4=0, uint8_t f5=0, uint8_t slsb=0, uint8_t res4=0, uint8_t res3=0, uint8_t res2=0, uint8_t res1=0, uint8_t res0=0, uint8_t clk0=0, uint8_t clk1=0, uint8_t frqc=0, uint8_t engr=0, uint8_t f0=0, uint8_t f1=0, uint8_t f2=0, uint8_t f3=0)
void set_chip(uint8_t chip=0, uint8_t d=0, uint8_t pcsr=0, uint8_t pdsr=0, uint8_t slp=0, uint8_t tstin=0, uint8_t f4=0, uint8_t f5=0, uint8_t slsb=0, uint8_t res4=0, uint8_t res3=0, uint8_t res2=0, uint8_t res1=0, uint8_t res0=0, uint8_t clk0=0, uint8_t clk1=0, uint8_t frqc=0, uint8_t engr=0, uint8_t f0=0, uint8_t f1=0, uint8_t f2=0, uint8_t f3=0)
void set_ch(uint8_t chip=0, uint8_t chn=0, uint8_t d=0, uint8_t pcsr=0, uint8_t pdsr=0, uint8_t slp=0, uint8_t tstin=0)