24def getCutFromPrescale(prescale):
25 """
26 C = 2**24-(2**24-1)/PS
27
28 PS = 1 --> C = 1
29 PS = 2 --> C = 8388609
30 PS = 10 --> C = 15099495
31 PS = 1000 --> C = 16760439
32 PS = 10000 --> C = 16775539
33 PS = 2**24-1 --> C = 2**24-1
34 """
35
36 if prescale==0:
37 raise RuntimeError("L1 Prescale value of 0 is not allowed")
38
39 sign = -1 if prescale<0 else 1
40 prescale = abs(prescale)
41 cut=sign * ( 0x1000000 - (0xFFFFFF/prescale) )
42 cut = round( cut )
43 if prescale > 0xFFFFFF:
44 cut=sign * (0x1000000-1)
45
46 return int(cut)
47