Rohan Gurav
/
Sean_AdiSense1000_V21
ADISense1000 Version 2.1 code base
Fork of AdiSense1000_V21 by
sample_lut_data.c@33:640b6bebda17, 2018-09-18 (annotated)
- Committer:
- RGurav
- Date:
- Tue Sep 18 16:46:40 2018 +0000
- Revision:
- 33:640b6bebda17
ADISense1000 Version 2.1 code base
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RGurav | 33:640b6bebda17 | 1 | /* |
RGurav | 33:640b6bebda17 | 2 | * File: sample_lut_data.c |
RGurav | 33:640b6bebda17 | 3 | * The following example illustrates how individual tables can be declared, and |
RGurav | 33:640b6bebda17 | 4 | * later assembled into a complete LUT data structure using adi_sense_1000_AssembleLutData(). |
RGurav | 33:640b6bebda17 | 5 | * That LUT data structure can then be written to the ADI Sense 1000 device |
RGurav | 33:640b6bebda17 | 6 | * using adi_sense_1000_SetLutData(). |
RGurav | 33:640b6bebda17 | 7 | */ |
RGurav | 33:640b6bebda17 | 8 | |
RGurav | 33:640b6bebda17 | 9 | #include "adi_sense_1000_lut_data.h" |
RGurav | 33:640b6bebda17 | 10 | #include "adi_sense_1000_sensor_types.h" |
RGurav | 33:640b6bebda17 | 11 | |
RGurav | 33:640b6bebda17 | 12 | /* |
RGurav | 33:640b6bebda17 | 13 | * The following table provide linearisation data for a 4-wire bridge sensor |
RGurav | 33:640b6bebda17 | 14 | * identified with the ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_1_DEF_L2 |
RGurav | 33:640b6bebda17 | 15 | * sensor type. The Look-Up Table provided maps a range of input (X) |
RGurav | 33:640b6bebda17 | 16 | * values to a corresponding range of output (Y) values. In this example, |
RGurav | 33:640b6bebda17 | 17 | * the bridge sensor input in millivolts is effectively translated to volts. |
RGurav | 33:640b6bebda17 | 18 | */ |
RGurav | 33:640b6bebda17 | 19 | |
RGurav | 33:640b6bebda17 | 20 | ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_1 = |
RGurav | 33:640b6bebda17 | 21 | { |
RGurav | 33:640b6bebda17 | 22 | .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, |
RGurav | 33:640b6bebda17 | 23 | .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, |
RGurav | 33:640b6bebda17 | 24 | .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, |
RGurav | 33:640b6bebda17 | 25 | .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_3_DEF_L2, |
RGurav | 33:640b6bebda17 | 26 | .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, |
RGurav | 33:640b6bebda17 | 27 | .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 28 | .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 29 | }; |
RGurav | 33:640b6bebda17 | 30 | |
RGurav | 33:640b6bebda17 | 31 | ADI_SENSE_1000_LUT_1D_NES loadcell_1_data = |
RGurav | 33:640b6bebda17 | 32 | { |
RGurav | 33:640b6bebda17 | 33 | .nElements = 10, |
RGurav | 33:640b6bebda17 | 34 | .lut = |
RGurav | 33:640b6bebda17 | 35 | { |
RGurav | 33:640b6bebda17 | 36 | -3300.0f, /* x(min) || mV */ |
RGurav | 33:640b6bebda17 | 37 | -0.7556152f, |
RGurav | 33:640b6bebda17 | 38 | -0.626709f, |
RGurav | 33:640b6bebda17 | 39 | -0.5058594f, |
RGurav | 33:640b6bebda17 | 40 | -0.3776855f, |
RGurav | 33:640b6bebda17 | 41 | -0.1120605f, |
RGurav | 33:640b6bebda17 | 42 | 0.5334473f, |
RGurav | 33:640b6bebda17 | 43 | 1.1896973f, |
RGurav | 33:640b6bebda17 | 44 | 13.340413f, |
RGurav | 33:640b6bebda17 | 45 | +3300.0f, /* x(max) || mV */ |
RGurav | 33:640b6bebda17 | 46 | -0.001f, /* y(min) || kg */ |
RGurav | 33:640b6bebda17 | 47 | 0.0f, |
RGurav | 33:640b6bebda17 | 48 | 0.1f, |
RGurav | 33:640b6bebda17 | 49 | 0.2f, |
RGurav | 33:640b6bebda17 | 50 | 0.3f, |
RGurav | 33:640b6bebda17 | 51 | 0.5f, |
RGurav | 33:640b6bebda17 | 52 | 1.0f, |
RGurav | 33:640b6bebda17 | 53 | 1.5f, |
RGurav | 33:640b6bebda17 | 54 | 10.0f, |
RGurav | 33:640b6bebda17 | 55 | +100.0f, /* y(max) || kg */ |
RGurav | 33:640b6bebda17 | 56 | }, |
RGurav | 33:640b6bebda17 | 57 | }; |
RGurav | 33:640b6bebda17 | 58 | |
RGurav | 33:640b6bebda17 | 59 | ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_2 = |
RGurav | 33:640b6bebda17 | 60 | { |
RGurav | 33:640b6bebda17 | 61 | .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, |
RGurav | 33:640b6bebda17 | 62 | .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, |
RGurav | 33:640b6bebda17 | 63 | .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, |
RGurav | 33:640b6bebda17 | 64 | .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_2_DEF_L2, |
RGurav | 33:640b6bebda17 | 65 | .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, |
RGurav | 33:640b6bebda17 | 66 | .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 67 | .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 68 | }; |
RGurav | 33:640b6bebda17 | 69 | |
RGurav | 33:640b6bebda17 | 70 | ADI_SENSE_1000_LUT_1D_NES loadcell_2_data = |
RGurav | 33:640b6bebda17 | 71 | { |
RGurav | 33:640b6bebda17 | 72 | .nElements = 10, |
RGurav | 33:640b6bebda17 | 73 | .lut = |
RGurav | 33:640b6bebda17 | 74 | { |
RGurav | 33:640b6bebda17 | 75 | -3300.0f, /* x(min) || mV */ |
RGurav | 33:640b6bebda17 | 76 | 0.2766113f, |
RGurav | 33:640b6bebda17 | 77 | 0.4162598f, |
RGurav | 33:640b6bebda17 | 78 | 0.5400391f, |
RGurav | 33:640b6bebda17 | 79 | 0.6694336f, |
RGurav | 33:640b6bebda17 | 80 | 0.9326172f, |
RGurav | 33:640b6bebda17 | 81 | 1.5837402f, |
RGurav | 33:640b6bebda17 | 82 | 2.2387695f, |
RGurav | 33:640b6bebda17 | 83 | 12.25284823f, |
RGurav | 33:640b6bebda17 | 84 | +3300.0f, /* x(max) || mV */ |
RGurav | 33:640b6bebda17 | 85 | -0.001f, /* y(min) || kg */ |
RGurav | 33:640b6bebda17 | 86 | 0.0f, |
RGurav | 33:640b6bebda17 | 87 | 0.1f, |
RGurav | 33:640b6bebda17 | 88 | 0.2f, |
RGurav | 33:640b6bebda17 | 89 | 0.3f, |
RGurav | 33:640b6bebda17 | 90 | 0.5f, |
RGurav | 33:640b6bebda17 | 91 | 1.0f, |
RGurav | 33:640b6bebda17 | 92 | 1.5f, |
RGurav | 33:640b6bebda17 | 93 | 10.0f, |
RGurav | 33:640b6bebda17 | 94 | +100.0f, /* y(max) || kg */ |
RGurav | 33:640b6bebda17 | 95 | }, |
RGurav | 33:640b6bebda17 | 96 | }; |
RGurav | 33:640b6bebda17 | 97 | |
RGurav | 33:640b6bebda17 | 98 | ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_3 = |
RGurav | 33:640b6bebda17 | 99 | { |
RGurav | 33:640b6bebda17 | 100 | .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, |
RGurav | 33:640b6bebda17 | 101 | .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, |
RGurav | 33:640b6bebda17 | 102 | .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, |
RGurav | 33:640b6bebda17 | 103 | .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_1_DEF_L2, |
RGurav | 33:640b6bebda17 | 104 | .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, |
RGurav | 33:640b6bebda17 | 105 | .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 106 | .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 107 | }; |
RGurav | 33:640b6bebda17 | 108 | |
RGurav | 33:640b6bebda17 | 109 | ADI_SENSE_1000_LUT_1D_NES loadcell_3_data = |
RGurav | 33:640b6bebda17 | 110 | { |
RGurav | 33:640b6bebda17 | 111 | .nElements = 10, |
RGurav | 33:640b6bebda17 | 112 | .lut = |
RGurav | 33:640b6bebda17 | 113 | { |
RGurav | 33:640b6bebda17 | 114 | -3300.0f, /* x(min) || mV */ |
RGurav | 33:640b6bebda17 | 115 | 0.2521973f, |
RGurav | 33:640b6bebda17 | 116 | 0.3740234f, |
RGurav | 33:640b6bebda17 | 117 | 0.5178223f, |
RGurav | 33:640b6bebda17 | 118 | 0.6574707f, |
RGurav | 33:640b6bebda17 | 119 | 0.9311523f, |
RGurav | 33:640b6bebda17 | 120 | 1.6118164f, |
RGurav | 33:640b6bebda17 | 121 | 2.3029785f, |
RGurav | 33:640b6bebda17 | 122 | 13.96175153f, |
RGurav | 33:640b6bebda17 | 123 | +3300.0f, /* x(max) || mV */ |
RGurav | 33:640b6bebda17 | 124 | -0.001f, /* y(min) || kg */ |
RGurav | 33:640b6bebda17 | 125 | 0.0f, |
RGurav | 33:640b6bebda17 | 126 | 0.1f, |
RGurav | 33:640b6bebda17 | 127 | 0.2f, |
RGurav | 33:640b6bebda17 | 128 | 0.3f, |
RGurav | 33:640b6bebda17 | 129 | 0.5f, |
RGurav | 33:640b6bebda17 | 130 | 1.0f, |
RGurav | 33:640b6bebda17 | 131 | 1.5f, |
RGurav | 33:640b6bebda17 | 132 | 10.0f, |
RGurav | 33:640b6bebda17 | 133 | +100.0f, /* y(max) || kg */ |
RGurav | 33:640b6bebda17 | 134 | }, |
RGurav | 33:640b6bebda17 | 135 | }; |
RGurav | 33:640b6bebda17 | 136 | |
RGurav | 33:640b6bebda17 | 137 | ADI_SENSE_1000_LUT_DESCRIPTOR loadcell_4 = |
RGurav | 33:640b6bebda17 | 138 | { |
RGurav | 33:640b6bebda17 | 139 | .geometry = ADI_SENSE_1000_LUT_GEOMETRY_NES_1D, |
RGurav | 33:640b6bebda17 | 140 | .equation = ADI_SENSE_1000_LUT_EQUATION_LUT, |
RGurav | 33:640b6bebda17 | 141 | .dir = ADI_SENSE_1000_LUT_TC_DIRECTION_FORWARD, |
RGurav | 33:640b6bebda17 | 142 | .sensor = ADI_SENSE_1000_ADC_SENSOR_BRIDGE_4WIRE_4_DEF_L2, |
RGurav | 33:640b6bebda17 | 143 | .dataType = ADI_SENSE_1000_LUT_DATA_TYPE_FLOAT32, |
RGurav | 33:640b6bebda17 | 144 | .length = 0, /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 145 | .crc16 = 0 /* Filled by adi_sense_1000_AssembleLutData() */ |
RGurav | 33:640b6bebda17 | 146 | }; |
RGurav | 33:640b6bebda17 | 147 | |
RGurav | 33:640b6bebda17 | 148 | ADI_SENSE_1000_LUT_1D_NES loadcell_4_data = |
RGurav | 33:640b6bebda17 | 149 | { |
RGurav | 33:640b6bebda17 | 150 | .nElements = 10, |
RGurav | 33:640b6bebda17 | 151 | .lut = |
RGurav | 33:640b6bebda17 | 152 | { |
RGurav | 33:640b6bebda17 | 153 | -3300.0f, /* x(min) || mV */ |
RGurav | 33:640b6bebda17 | 154 | 0.4609375f, |
RGurav | 33:640b6bebda17 | 155 | 0.5895996f, |
RGurav | 33:640b6bebda17 | 156 | 0.7226562f, |
RGurav | 33:640b6bebda17 | 157 | 0.857666f, |
RGurav | 33:640b6bebda17 | 158 | 1.1184082f, |
RGurav | 33:640b6bebda17 | 159 | 1.7749023f, |
RGurav | 33:640b6bebda17 | 160 | 2.432373f, |
RGurav | 33:640b6bebda17 | 161 | 13.60091103f, |
RGurav | 33:640b6bebda17 | 162 | +3300.0f, /* x(max) || mV */ |
RGurav | 33:640b6bebda17 | 163 | -0.001f, /* y(min) || kg */ |
RGurav | 33:640b6bebda17 | 164 | 0.0f, |
RGurav | 33:640b6bebda17 | 165 | 0.1f, |
RGurav | 33:640b6bebda17 | 166 | 0.2f, |
RGurav | 33:640b6bebda17 | 167 | 0.3f, |
RGurav | 33:640b6bebda17 | 168 | 0.5f, |
RGurav | 33:640b6bebda17 | 169 | 1.0f, |
RGurav | 33:640b6bebda17 | 170 | 1.5f, |
RGurav | 33:640b6bebda17 | 171 | 10.0f, |
RGurav | 33:640b6bebda17 | 172 | +100.0f, /* y(max) || kg */ |
RGurav | 33:640b6bebda17 | 173 | }, |
RGurav | 33:640b6bebda17 | 174 | }; |
RGurav | 33:640b6bebda17 | 175 | |
RGurav | 33:640b6bebda17 | 176 | |
RGurav | 33:640b6bebda17 | 177 | /* |
RGurav | 33:640b6bebda17 | 178 | * The following variables can be passed as parameters to |
RGurav | 33:640b6bebda17 | 179 | * adi_sense_1000_AssembleLutData() |
RGurav | 33:640b6bebda17 | 180 | */ |
RGurav | 33:640b6bebda17 | 181 | ADI_SENSE_1000_LUT_DESCRIPTOR *sample_lut_desc_list[] = |
RGurav | 33:640b6bebda17 | 182 | { |
RGurav | 33:640b6bebda17 | 183 | &loadcell_1, |
RGurav | 33:640b6bebda17 | 184 | &loadcell_2, |
RGurav | 33:640b6bebda17 | 185 | &loadcell_3, |
RGurav | 33:640b6bebda17 | 186 | &loadcell_4, |
RGurav | 33:640b6bebda17 | 187 | |
RGurav | 33:640b6bebda17 | 188 | }; |
RGurav | 33:640b6bebda17 | 189 | |
RGurav | 33:640b6bebda17 | 190 | ADI_SENSE_1000_LUT_TABLE_DATA *sample_lut_data_list[] = |
RGurav | 33:640b6bebda17 | 191 | { |
RGurav | 33:640b6bebda17 | 192 | |
RGurav | 33:640b6bebda17 | 193 | (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_1_data, |
RGurav | 33:640b6bebda17 | 194 | (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_2_data, |
RGurav | 33:640b6bebda17 | 195 | (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_3_data, |
RGurav | 33:640b6bebda17 | 196 | (ADI_SENSE_1000_LUT_TABLE_DATA *) &loadcell_4_data, |
RGurav | 33:640b6bebda17 | 197 | |
RGurav | 33:640b6bebda17 | 198 | }; |
RGurav | 33:640b6bebda17 | 199 | |
RGurav | 33:640b6bebda17 | 200 | unsigned sample_lut_num_tables = |
RGurav | 33:640b6bebda17 | 201 | (sizeof(sample_lut_desc_list) / sizeof(sample_lut_desc_list[0])); |
RGurav | 33:640b6bebda17 | 202 |