m =

Vmax Vmin

PWM---------------------------------------------------------------------_MAX0 – PWM_MIN

voltage = m ⋅ value + b

4.4.1.4 Analog Input

The analog input channel on the Jackrabbit (AD0 on header J5) works by varying analog output channel DA0 until its voltage matches the input voltage on AD0. DA0 obviously cannot be used while an input voltage is being measured, although channel DA0 is still available. The value returned corresponds to the value that DA0 required to match the input voltage (you would call anaOut(0,value) for DA0 to provide that same voltage). If the value returned is negative, then the function considers the value suspect for some reason (most likely a failure of the DA0 voltage to settle quickly). The value can be taken as is, or another measurement can be done.

void anaIn(int channel, int *value);

Analog input for the Jackrabbit analog input channel (AD0). jrioInit must be called first.

channel is the input channel number (0 only on the Jackrabbit).

An integer between 0 and 1024 will be returned in value, corresponding to a voltage obtained if output channel DA0 was set to that value. If a value is found, but the voltage has not appeared to fully settle, the value will be negative (but equal in magnitude to the found voltage) to allow remeasurement if desired.

NOTE: See sample program JRIOTEST.C for an example of the use of anaIn.

Two versions of the analog input function are available: the standard function, listed above, that does not return until the measurement has been made, and a cofunction version that can be called from within a costatement. This cofunction version allows other tasks to be performed while the voltage match is being made. The voltage measurement will take ten calls of the cofunction version to make a measurement.

void cof_anaIn(int channel, int *value);

The parameters are identical to those described above for anaIn.

NOTE: See sample program JRIO_COF.C for an example of the use of cof_anaIn.

54

Jackrabbit (BL1800)

Page 58
Image 58
Digi BL1800 user manual Void anaInint channel, int *value