An A/D scan is similar to an A/D sample except that it performs several conversions on a specified range of input channels with each function call. The Universal Driver function for performing an A/D scan is dscADScan().
Create and initialize an A/D settings structure (DSCADSETTINGS).
Call dscADSetSettings() and pass it a pointer to this structure in order to setup the driver for A/D operations.
Create and initialize an A/D scan structure (DSCADSCAN).
Create and initialize a sample buffer of type DSCSAMPLE*.
Call dscADScan() and pass it a pointer to your scan structure - this will generate an A/D conversion for each channel in your scan range and the results will be stored in the sample_values element of your DSCADSCAN structure.
NOTE: You must always remember to allocate enough memory for your sample buffer (in this case, the WORD* sample_values). The driver assumes that your application has allocated at least the amount of memory given in the following formula:
Memory = sizeof(WORD) * ( high_channel - low_channel + 1 )
... DSCB dscb; DSCADSETTINGS dscadsettings; DSCADSCAN dscadscan; /* Step 1 */ dscadsettings.current_channel = 0; dscadsettings.gain = 0; dscadsettings.range = 0; dscadsettings.polarity = 0; dscadsettings.load_cal = 0; /* Step 2 */ if ((result = dscADSetSettings(dscb, &dscadsettings)) != DE_NONE) return result; /* Step 3 */ dscadscan.low_channel = 0; dscadscan.high_channel = 3; /* Step 4 */ dscadscan.sample_values = (DSCSAMPLE*)malloc(sizeof(DSCSAMPLE) * (dscadscan.high_channel - dscadscan.low_channel + 1)); memset(dscadscan.sample_values, 0, sizeof(DSCSAMPLE) * (dscadscan.high_channel - dscadscan.low_channel + 1)); /* Step 5 */ if ((result = dscADScan(dscb, &dscadscan, dscadscan.sample_values)) != DE_NONE) return result; ...
This page was last modified 15:48, 12 Feb 2004.
Copyright (c) 2004 Diamond Systems. All Rights Reserved.