Campbell Scientific CR3000 CR3000 Micrologger - Page 147
Expressions
View all Campbell Scientific CR3000 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 147 highlights
Section 7. Installation CRBasic Example 19. Use of Arrays as Multipliers and Offsets Public Pressure(3), Mult(3), Offset(3) DataTable(AvgPress,1,-1) DataInterval(0,60,Min,10) Average(3,Pressure(),IEEE4,0) EndTable BeginProg 'Calibration Factors: Mult(1)=0.123 : Offset(1)=0.23 Mult(2)=0.115 : Offset(2)=0.234 Mult(3)=0.114 : Offset(3)=0.224 Scan(1,Sec,10,0) 'VoltSe instruction using array of multipliers and offsets: VoltSe(Pressure(),3,mV5000,1,True,0,_60Hz,Mult(),Offset()) CallTable AvgPress NextScan EndProg 7.7.3.9 Expressions An expression is a series of words, operators, or numbers that produce a value or result. Expressions are evaluated from left to right, with deference to precedence rules. The result of each stage of the evaluation is of type Long (integer, 32 bits) if the variables are of type Long (constants are integers) and the functions give integer results, such as occurs with INTDV(). If part of the equation has a floating point variable or constant (24 bits), or a function that results in a floating point, the rest of the expression is evaluated using floating-point, 24-bit math, even if the final function is to convert the result to an integer, so precision can be lost; for example, INT((rtYear-1993)*.25). This is a critical feature to consider when, 1) trying to use integer math to retain numerical resolution beyond the limit of floating point variables, or 2) if the result is to be tested for equivalence against another value. See section Floating-Point Arithmetic (p. 147) for limits. Two types of expressions, mathematical and programming, are used in CRBasic. A useful property of expressions in CRBasic is that they are equivalent to and often interchangeable with their results. Consider the expressions: x = (z * 1.8) + 32 '(mathematical expression) If x = 23 then y = 5 '(programming expression) The variable x can be omitted and the expressions combined and written as: If (z * 1.8 + 32 = 23) then y = 5 Replacing the result with the expression should be done judiciously and with the realization that doing so may make program code more difficult to decipher. 7.7.3.9.1 Floating-Point Arithmetic Variables and calculations are performed internally in single precision IEEE fourbyte floating point with some operations calculated in double precision. 147