LibDriver ADS1110
Loading...
Searching...
No Matches
driver_ads1110_read_test.c
Go to the documentation of this file.
1
36
38
39static ads1110_handle_t gs_handle;
40
50uint8_t ads1110_read_test(ads1110_address_t addr, uint32_t times)
51{
52 uint8_t res;
53 uint32_t i;
54 uint32_t j;
55 uint32_t k;
56 ads1110_info_t info;
57
58 /* link interface function */
66
67 /* get information */
68 res = ads1110_info(&info);
69 if (res != 0)
70 {
71 ads1110_interface_debug_print("ads1110: get info failed.\n");
72
73 return 1;
74 }
75 else
76 {
77 /* print chip info */
78 ads1110_interface_debug_print("ads1110: chip is %s.\n", info.chip_name);
79 ads1110_interface_debug_print("ads1110: manufacturer is %s.\n", info.manufacturer_name);
80 ads1110_interface_debug_print("ads1110: interface is %s.\n", info.interface);
81 ads1110_interface_debug_print("ads1110: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
82 ads1110_interface_debug_print("ads1110: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
83 ads1110_interface_debug_print("ads1110: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
84 ads1110_interface_debug_print("ads1110: max current is %0.2fmA.\n", info.max_current_ma);
85 ads1110_interface_debug_print("ads1110: max temperature is %0.1fC.\n", info.temperature_max);
86 ads1110_interface_debug_print("ads1110: min temperature is %0.1fC.\n", info.temperature_min);
87 }
88
89 /* set addr pin */
90 res = ads1110_set_addr_pin(&gs_handle, addr);
91 if (res != 0)
92 {
93 ads1110_interface_debug_print("ads1110: set addr failed.\n");
94
95 return 1;
96 }
97
98 /* ads1110 init */
99 res = ads1110_init(&gs_handle);
100 if (res != 0)
101 {
102 ads1110_interface_debug_print("ads1110: init failed.\n");
103
104 return 1;
105 }
106
107 for (j = 0; j < 4; j++)
108 {
109 switch (j)
110 {
111 case 0 :
112 {
113 /* set gain 1 */
114 res = ads1110_set_gain(&gs_handle, ADS1110_GAIN_1);
115 if (res != 0)
116 {
117 ads1110_interface_debug_print("ads1110: set gain failed.\n");
118 (void)ads1110_deinit(&gs_handle);
119
120 return 1;
121 }
122
123 ads1110_interface_debug_print("ads1110: set gain 1.\n");
124
125 break;
126 }
127 case 1 :
128 {
129 /* set gain 2 */
130 res = ads1110_set_gain(&gs_handle, ADS1110_GAIN_2);
131 if (res != 0)
132 {
133 ads1110_interface_debug_print("ads1110: set gain failed.\n");
134 (void)ads1110_deinit(&gs_handle);
135
136 return 1;
137 }
138
139 ads1110_interface_debug_print("ads1110: set gain 2.\n");
140
141 break;
142 }
143 case 3 :
144 {
145 /* set gain 4 */
146 res = ads1110_set_gain(&gs_handle, ADS1110_GAIN_4);
147 if (res != 0)
148 {
149 ads1110_interface_debug_print("ads1110: set gain failed.\n");
150 (void)ads1110_deinit(&gs_handle);
151
152 return 1;
153 }
154
155 ads1110_interface_debug_print("ads1110: set gain 4.\n");
156
157 break;
158 }
159 default :
160 {
161 /* set gain 8 */
162 res = ads1110_set_gain(&gs_handle, ADS1110_GAIN_8);
163 if (res != 0)
164 {
165 ads1110_interface_debug_print("ads1110: set gain failed.\n");
166 (void)ads1110_deinit(&gs_handle);
167
168 return 1;
169 }
170
171 ads1110_interface_debug_print("ads1110: set gain 8.\n");
172
173 break;
174 }
175 }
176
177 for (k = 0; k < 4; k++)
178 {
179 switch (k)
180 {
181 case 0 :
182 {
183 /* set 15sps rate */
184 res = ads1110_set_rate(&gs_handle, ADS1110_RATE_15SPS);
185 if (res != 0)
186 {
187 ads1110_interface_debug_print("ads1110: set rate failed.\n");
188 (void)ads1110_deinit(&gs_handle);
189
190 return 1;
191 }
192
193 ads1110_interface_debug_print("ads1110: set 15sps rate.\n");
194
195 break;
196 }
197 case 1 :
198 {
199 /* set 30sps rate */
200 res = ads1110_set_rate(&gs_handle, ADS1110_RATE_30SPS);
201 if (res != 0)
202 {
203 ads1110_interface_debug_print("ads1110: set rate failed.\n");
204 (void)ads1110_deinit(&gs_handle);
205
206 return 1;
207 }
208
209 ads1110_interface_debug_print("ads1110: set 30sps rate.\n");
210
211 break;
212 }
213 case 2 :
214 {
215 /* set 60sps rate */
216 res = ads1110_set_rate(&gs_handle, ADS1110_RATE_60SPS);
217 if (res != 0)
218 {
219 ads1110_interface_debug_print("ads1110: set rate failed.\n");
220 (void)ads1110_deinit(&gs_handle);
221
222 return 1;
223 }
224
225 ads1110_interface_debug_print("ads1110: set 60sps rate.\n");
226
227 break;
228 }
229 default :
230 {
231 /* set 240sps rate */
232 res = ads1110_set_rate(&gs_handle, ADS1110_RATE_240SPS);
233 if (res != 0)
234 {
235 ads1110_interface_debug_print("ads1110: set rate failed.\n");
236 (void)ads1110_deinit(&gs_handle);
237
238 return 1;
239 }
240
241 ads1110_interface_debug_print("ads1110: set 240sps rate.\n");
242
243 break;
244 }
245 }
246
247 /* start continuous read */
248 ads1110_interface_debug_print("ads1110: continuous read test.\n");
249 res = ads1110_start_continuous_read(&gs_handle);
250 if (res != 0)
251 {
252 ads1110_interface_debug_print("ads1110: start continues read mode failed.\n");
253 (void)ads1110_deinit(&gs_handle);
254
255 return 1;
256 }
257
258 /* delay 100 ms */
260 for (i = 0; i < times; i++)
261 {
262 int16_t raw;
263 float s;
264
265 /* continuous read */
266 res = ads1110_continuous_read(&gs_handle, (int16_t *)&raw, (float *)&s);
267 if (res != 0)
268 {
269 ads1110_interface_debug_print("ads1110: read failed.\n");
270 (void)ads1110_deinit(&gs_handle);
271
272 return 1;
273 }
274 ads1110_interface_debug_print("ads1110: continues mode %0.3fV.\n", s);
276 }
277
278 /* stop continuous read */
279 res = ads1110_stop_continuous_read(&gs_handle);
280 if (res != 0)
281 {
282 ads1110_interface_debug_print("ads1110: stop continues read mode failed.\n");
283 (void)ads1110_deinit(&gs_handle);
284
285 return 1;
286 }
287
288 /* start single read */
289 ads1110_interface_debug_print("ads1110: single read test.\n");
290 for (i = 0; i < times; i++)
291 {
292 int16_t raw;
293 float s;
294
295 /* single read */
296 res = ads1110_single_read(&gs_handle, (int16_t *)&raw, (float *)&s);
297 if (res != 0)
298 {
299 ads1110_interface_debug_print("ads1110: read failed.\n");
300 (void)ads1110_deinit(&gs_handle);
301
302 return 1;
303 }
304 ads1110_interface_debug_print("ads1110: single mode %0.3fV.\n", s);
306 }
307 }
308 }
309
310 /* finish read test */
311 ads1110_interface_debug_print("ads1110: finish read test.\n");
312 (void)ads1110_deinit(&gs_handle);
313
314 return 0;
315}
driver ads1110 read test header file
uint8_t ads1110_set_rate(ads1110_handle_t *handle, ads1110_rate_t rate)
set the sample rate
uint8_t ads1110_single_read(ads1110_handle_t *handle, int16_t *raw, float *v)
read data from the chip once
uint8_t ads1110_deinit(ads1110_handle_t *handle)
close the chip
uint8_t ads1110_set_addr_pin(ads1110_handle_t *handle, ads1110_address_t addr_pin)
set the iic address pin
uint8_t ads1110_info(ads1110_info_t *info)
get chip's information
struct ads1110_handle_s ads1110_handle_t
ads1110 handle structure definition
uint8_t ads1110_stop_continuous_read(ads1110_handle_t *handle)
stop the chip reading
uint8_t ads1110_init(ads1110_handle_t *handle)
initialize the chip
uint8_t ads1110_continuous_read(ads1110_handle_t *handle, int16_t *raw, float *v)
read data from the chip continuously
ads1110_address_t
ads1110 address enumeration definition
struct ads1110_info_s ads1110_info_t
ads1110 information structure definition
uint8_t ads1110_set_gain(ads1110_handle_t *handle, ads1110_gain_t gain)
set adc gain
uint8_t ads1110_start_continuous_read(ads1110_handle_t *handle)
start the chip reading
@ ADS1110_RATE_15SPS
@ ADS1110_RATE_60SPS
@ ADS1110_RATE_240SPS
@ ADS1110_RATE_30SPS
@ ADS1110_GAIN_8
@ ADS1110_GAIN_1
@ ADS1110_GAIN_2
@ ADS1110_GAIN_4
uint8_t ads1110_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
uint8_t ads1110_interface_iic_init(void)
interface iic bus init
uint8_t ads1110_interface_iic_deinit(void)
interface iic bus deinit
void ads1110_interface_delay_ms(uint32_t ms)
interface delay ms
void ads1110_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ads1110_interface_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
uint8_t ads1110_read_test(ads1110_address_t addr, uint32_t times)
read test
uint32_t driver_version
char manufacturer_name[32]