(Working) Code to interface 3 LoadCells to ADISense1000 and display values using the Labview code.
Fork of 4Bridge_ADISense1000_Example_copy by
Revision 3:83d10123d1cd, committed 2018-08-08
- Comitter:
- RGurav
- Date:
- Wed Aug 08 08:08:53 2018 +0000
- Parent:
- 2:2f9f9f7f0243
- Commit message:
- (Working); Code to interface 3 loadCell to ADISense1000 and display using Labview code.
Changed in this revision
sample_lut_data.c | Show annotated file Show diff for this revision Revisions of this file |
sensor2_bridge-6w-pressure_config.c | Show annotated file Show diff for this revision Revisions of this file |
--- a/sample_lut_data.c Thu Jul 19 13:25:33 2018 +0000 +++ b/sample_lut_data.c Wed Aug 08 08:08:53 2018 +0000 @@ -1,23 +1,24 @@ +/* + * File: sample_lut_data.c + * The following example illustrates how individual tables can be declared, and + * later assembled into a complete LUT data structure using adi_sense_1000_AssembleLutData(). + * That LUT data structure can then be written to the ADI Sense 1000 device + * using adi_sense_1000_SetLutData(). + */ + #include "adi_sense_1000_lut_data.h" #include "adi_sense_1000_sensor_types.h" /* - * The following example illustrates how individual tables can be declared, and - * later assembled into a complete LUT data structure using - * adi_sense_1000_AssembleLutData(). That LUT data structure can then be - * written to the ADI Sense 1000 device using adi_sense_1000_SetLutData(). - */ - - - -/* * The following table provide linearisation data for a 4-wire bridge sensor * identified with the ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_1_DEF_L2 * sensor type. The Look-Up Table provided maps a range of input (X) * values to a corresponding range of output (Y) values. In this example, * the bridge sensor input in millivolts is effectively translated to volts. */ -ADI_SENSE_1000_LUT_DESCRIPTOR bridge_4wire_1_def_l2_range1_desc = { + +ADI_SENSE_1000_LUT_DESCRIPTOR bridge_4wire_1_def_l2_range1_desc = +{ .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, @@ -26,13 +27,16 @@ .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ }; -ADI_SENSE_1000_LUT_1D_NES bridge_4wire_1_def_l2_range1_data = { + +ADI_SENSE_1000_LUT_1D_NES bridge_4wire_1_def_l2_range1_data = +{ .nElements = 2, - .lut = { + .lut = + { -3300.0f, /* x(min) */ +3300.0f, /* x(max) */ - -3.3f, /* y(min) */ - +3.3f, /* y(max) */ + -3300.0f, /* y(min) */ + +3300.0f, /* y(max) */ }, }; @@ -40,13 +44,15 @@ * The following variables can be passed as parameters to * adi_sense_1000_AssembleLutData() */ -ADI_SENSE_1000_LUT_DESCRIPTOR *sample_lut_desc_list[] = { +ADI_SENSE_1000_LUT_DESCRIPTOR *sample_lut_desc_list[] = +{ &bridge_4wire_1_def_l2_range1_desc, }; -ADI_SENSE_1000_LUT_TABLE_DATA *sample_lut_data_list[] = { +ADI_SENSE_1000_LUT_TABLE_DATA *sample_lut_data_list[] = +{ (ADI_SENSE_1000_LUT_TABLE_DATA *) &bridge_4wire_1_def_l2_range1_data,
--- a/sensor2_bridge-6w-pressure_config.c Thu Jul 19 13:25:33 2018 +0000 +++ b/sensor2_bridge-6w-pressure_config.c Wed Aug 08 08:08:53 2018 +0000 @@ -1,78 +1,105 @@ -/* -Copyright 2017 (c) Analog Devices, Inc. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - Neither the name of Analog Devices, Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - The use of this software may or may not infringe the patent rights - of one or more patent holders. This license does not release you - from the requirement that you obtain separate licenses from these - patent holders to use this software. - - Use of the software either in source or binary form, must be run - on or directly connected to an Analog Devices Inc. component. - -THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ /*! ****************************************************************************** - * @file: - * @brief: + * @file: sensor2_bridge_6w_pressure_config + * @brief: Initilize the sensor configuration *----------------------------------------------------------------------------- */ #include "adi_sense_config_types.h" -ADI_SENSE_CONFIG sensor2_bridge_6w_pressure_config = { +ADI_SENSE_CONFIG sensor2_bridge_6w_pressure_config = +{ .versionId = { .major = 1, .minor = 4 }, .productId = ADI_SENSE_PRODUCT_ID_1000, - .adisense1000 = { - .power = { + .adisense1000 = + { + .power = + { .powerMode = ADI_SENSE_1000_POWER_MODE_FULL, }, - .measurement = { + .measurement = + { .operatingMode = ADI_SENSE_1000_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADI_SENSE_1000_DATAREADY_PER_CYCLE, }, - .channels = { - [ADI_SENSE_1000_CHANNEL_ID_SENSOR_2] = { + + /* + Define the channels and operating mode + */ + .channels = + { + [ADI_SENSE_1000_CHANNEL_ID_SENSOR_2] = + { .enableChannel = true, .disablePublishing = false, .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE, .measurementsPerCycle = 1, .extraSettlingTime = 20000, - .adcChannelConfig = { + .adcChannelConfig = + { .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_2_DEF_L2, .gain = ADI_SENSE_1000_ADC_GAIN_1X, - .filter = { + .filter = + { .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS, - }, - .reference = { + }, + .reference = + { .type = ADI_SENSE_1000_ADC_REFERENCE_BRIDGE_EXCITATION, .disableBuffer = false, - }, + }, .enableVbias = false, }, }, + + [ADI_SENSE_1000_CHANNEL_ID_SENSOR_1] = + { + .enableChannel = true, + .disablePublishing = false, + .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE, + .measurementsPerCycle = 1, + .extraSettlingTime = 20000, + .adcChannelConfig = + { + .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_2_DEF_L2, + .gain = ADI_SENSE_1000_ADC_GAIN_1X, + .filter = + { + .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS, + }, + .reference = + { + .type = ADI_SENSE_1000_ADC_REFERENCE_BRIDGE_EXCITATION, + .disableBuffer = false, + }, + .enableVbias = false, + }, + }, + + [ADI_SENSE_1000_CHANNEL_ID_SENSOR_0] = + { + .enableChannel = true, + .disablePublishing = false, + .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE, + .measurementsPerCycle = 1, + .extraSettlingTime = 20000, + .adcChannelConfig = + { + .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_2_DEF_L2, + .gain = ADI_SENSE_1000_ADC_GAIN_1X, + .filter = + { + .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS, + }, + .reference = + { + .type = ADI_SENSE_1000_ADC_REFERENCE_BRIDGE_EXCITATION, + .disableBuffer = false, + }, + .enableVbias = false, + }, + }, + }, }, };