LibDriver MCP3421
Loading...
Searching...
No Matches
driver_mcp3421_register_test.c
Go to the documentation of this file.
1
36
38
39static mcp3421_handle_t gs_handle;
40
49{
50 uint8_t res;
51 mcp3421_bit_t adc_bit;
52 mcp3421_pga_t pga;
53 mcp3421_info_t info;
54
55 /* link interface function */
63
64 /* get information */
65 res = mcp3421_info(&info);
66 if (res != 0)
67 {
68 mcp3421_interface_debug_print("mcp3421: get info failed.\n");
69
70 return 1;
71 }
72 else
73 {
74 /* print chip info */
75 mcp3421_interface_debug_print("mcp3421: chip is %s.\n", info.chip_name);
76 mcp3421_interface_debug_print("mcp3421: manufacturer is %s.\n", info.manufacturer_name);
77 mcp3421_interface_debug_print("mcp3421: interface is %s.\n", info.interface);
78 mcp3421_interface_debug_print("mcp3421: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
79 mcp3421_interface_debug_print("mcp3421: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
80 mcp3421_interface_debug_print("mcp3421: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
81 mcp3421_interface_debug_print("mcp3421: max current is %0.2fmA.\n", info.max_current_ma);
82 mcp3421_interface_debug_print("mcp3421: max temperature is %0.1fC.\n", info.temperature_max);
83 mcp3421_interface_debug_print("mcp3421: min temperature is %0.1fC.\n", info.temperature_min);
84 }
85
86 /* start register test */
87 mcp3421_interface_debug_print("mcp3421: start register test.\n");
88
89 /* mcp3421 init */
90 res = mcp3421_init(&gs_handle);
91 if (res != 0)
92 {
93 mcp3421_interface_debug_print("mcp3421: init failed.\n");
94
95 return 1;
96 }
97
98 /* mcp3421_set_adc_bit/mcp3421_get_adc_bit test */
99 mcp3421_interface_debug_print("mcp3421: mcp3421_set_adc_bit/mcp3421_get_adc_bit test.\n");
100
101 /* set adc bit */
102 res = mcp3421_set_adc_bit(&gs_handle, MCP3421_BIT_12);
103 if (res != 0)
104 {
105 mcp3421_interface_debug_print("mcp3421: set adc bit failed.\n");
106 (void)mcp3421_deinit(&gs_handle);
107
108 return 1;
109 }
110 mcp3421_interface_debug_print("mcp3421: set adc 12 bit.\n");
111 res = mcp3421_get_adc_bit(&gs_handle, &adc_bit);
112 if (res != 0)
113 {
114 mcp3421_interface_debug_print("mcp3421: get adc bit failed.\n");
115 (void)mcp3421_deinit(&gs_handle);
116
117 return 1;
118 }
119 mcp3421_interface_debug_print("mcp3421: check adc bit %s.\n", adc_bit == MCP3421_BIT_12 ? "ok" : "error");
120
121 /* set adc bit */
122 res = mcp3421_set_adc_bit(&gs_handle, MCP3421_BIT_14);
123 if (res != 0)
124 {
125 mcp3421_interface_debug_print("mcp3421: set adc bit failed.\n");
126 (void)mcp3421_deinit(&gs_handle);
127
128 return 1;
129 }
130 mcp3421_interface_debug_print("mcp3421: set adc 14 bit.\n");
131 res = mcp3421_get_adc_bit(&gs_handle, &adc_bit);
132 if (res != 0)
133 {
134 mcp3421_interface_debug_print("mcp3421: get adc bit failed.\n");
135 (void)mcp3421_deinit(&gs_handle);
136
137 return 1;
138 }
139 mcp3421_interface_debug_print("mcp3421: check adc bit %s.\n", adc_bit == MCP3421_BIT_14 ? "ok" : "error");
140
141 /* set adc bit */
142 res = mcp3421_set_adc_bit(&gs_handle, MCP3421_BIT_16);
143 if (res != 0)
144 {
145 mcp3421_interface_debug_print("mcp3421: set adc bit failed.\n");
146 (void)mcp3421_deinit(&gs_handle);
147
148 return 1;
149 }
150 mcp3421_interface_debug_print("mcp3421: set adc 16 bit.\n");
151 res = mcp3421_get_adc_bit(&gs_handle, &adc_bit);
152 if (res != 0)
153 {
154 mcp3421_interface_debug_print("mcp3421: get adc bit failed.\n");
155 (void)mcp3421_deinit(&gs_handle);
156
157 return 1;
158 }
159 mcp3421_interface_debug_print("mcp3421: check adc bit %s.\n", adc_bit == MCP3421_BIT_16 ? "ok" : "error");
160
161 /* set adc bit */
162 res = mcp3421_set_adc_bit(&gs_handle, MCP3421_BIT_18);
163 if (res != 0)
164 {
165 mcp3421_interface_debug_print("mcp3421: set adc bit failed.\n");
166 (void)mcp3421_deinit(&gs_handle);
167
168 return 1;
169 }
170 mcp3421_interface_debug_print("mcp3421: set adc 18 bit.\n");
171 res = mcp3421_get_adc_bit(&gs_handle, &adc_bit);
172 if (res != 0)
173 {
174 mcp3421_interface_debug_print("mcp3421: get adc bit failed.\n");
175 (void)mcp3421_deinit(&gs_handle);
176
177 return 1;
178 }
179 mcp3421_interface_debug_print("mcp3421: check adc bit %s.\n", adc_bit == MCP3421_BIT_18 ? "ok" : "error");
180
181 /* mcp3421_set_pga/mcp3421_get_pga test */
182 mcp3421_interface_debug_print("mcp3421: mcp3421_set_pga/mcp3421_get_pga test.\n");
183
184 /* set pag 1 */
185 res = mcp3421_set_pga(&gs_handle, MCP3421_PGA_1);
186 if (res != 0)
187 {
188 mcp3421_interface_debug_print("mcp3421: set pga failed.\n");
189 (void)mcp3421_deinit(&gs_handle);
190
191 return 1;
192 }
193 mcp3421_interface_debug_print("mcp3421: set pga 1.\n");
194 res = mcp3421_get_pga(&gs_handle, &pga);
195 if (res != 0)
196 {
197 mcp3421_interface_debug_print("mcp3421: get pga failed.\n");
198 (void)mcp3421_deinit(&gs_handle);
199
200 return 1;
201 }
202 mcp3421_interface_debug_print("mcp3421: check pga %s.\n", pga == MCP3421_PGA_1 ? "ok" : "error");
203
204 /* set pag 2 */
205 res = mcp3421_set_pga(&gs_handle, MCP3421_PGA_2);
206 if (res != 0)
207 {
208 mcp3421_interface_debug_print("mcp3421: set pga failed.\n");
209 (void)mcp3421_deinit(&gs_handle);
210
211 return 1;
212 }
213 mcp3421_interface_debug_print("mcp3421: set pga 2.\n");
214 res = mcp3421_get_pga(&gs_handle, &pga);
215 if (res != 0)
216 {
217 mcp3421_interface_debug_print("mcp3421: get pga failed.\n");
218 (void)mcp3421_deinit(&gs_handle);
219
220 return 1;
221 }
222 mcp3421_interface_debug_print("mcp3421: check pga %s.\n", pga == MCP3421_PGA_2 ? "ok" : "error");
223
224 /* set pag 4 */
225 res = mcp3421_set_pga(&gs_handle, MCP3421_PGA_4);
226 if (res != 0)
227 {
228 mcp3421_interface_debug_print("mcp3421: set pga failed.\n");
229 (void)mcp3421_deinit(&gs_handle);
230
231 return 1;
232 }
233 mcp3421_interface_debug_print("mcp3421: set pga 4.\n");
234 res = mcp3421_get_pga(&gs_handle, &pga);
235 if (res != 0)
236 {
237 mcp3421_interface_debug_print("mcp3421: get pga failed.\n");
238 (void)mcp3421_deinit(&gs_handle);
239
240 return 1;
241 }
242 mcp3421_interface_debug_print("mcp3421: check pga %s.\n", pga == MCP3421_PGA_4 ? "ok" : "error");
243
244 /* set pag 8 */
245 res = mcp3421_set_pga(&gs_handle, MCP3421_PGA_8);
246 if (res != 0)
247 {
248 mcp3421_interface_debug_print("mcp3421: set pga failed.\n");
249 (void)mcp3421_deinit(&gs_handle);
250
251 return 1;
252 }
253 mcp3421_interface_debug_print("mcp3421: set pga 8.\n");
254 res = mcp3421_get_pga(&gs_handle, &pga);
255 if (res != 0)
256 {
257 mcp3421_interface_debug_print("mcp3421: get pga failed.\n");
258 (void)mcp3421_deinit(&gs_handle);
259
260 return 1;
261 }
262 mcp3421_interface_debug_print("mcp3421: check pga %s.\n", pga == MCP3421_PGA_8 ? "ok" : "error");
263
264 /* finish register */
265 mcp3421_interface_debug_print("mcp3421: finish register test.\n");
266 (void)mcp3421_deinit(&gs_handle);
267
268 return 0;
269}
driver mcp3421 register test header file
uint8_t mcp3421_get_adc_bit(mcp3421_handle_t *handle, mcp3421_bit_t *adc_bit)
get the adc bit
uint8_t mcp3421_set_pga(mcp3421_handle_t *handle, mcp3421_pga_t pga)
set the adc pga
uint8_t mcp3421_set_adc_bit(mcp3421_handle_t *handle, mcp3421_bit_t adc_bit)
set the adc bit
mcp3421_pga_t
mcp3421 pga enumeration definition
uint8_t mcp3421_init(mcp3421_handle_t *handle)
initialize the chip
uint8_t mcp3421_deinit(mcp3421_handle_t *handle)
close the chip
uint8_t mcp3421_get_pga(mcp3421_handle_t *handle, mcp3421_pga_t *pga)
get the adc pga
mcp3421_bit_t
mcp3421 bit enumeration definition
struct mcp3421_handle_s mcp3421_handle_t
mcp3421 handle structure definition
struct mcp3421_info_s mcp3421_info_t
mcp3421 information structure definition
uint8_t mcp3421_info(mcp3421_info_t *info)
get chip's information
@ MCP3421_PGA_2
@ MCP3421_PGA_4
@ MCP3421_PGA_1
@ MCP3421_PGA_8
@ MCP3421_BIT_16
@ MCP3421_BIT_12
@ MCP3421_BIT_18
@ MCP3421_BIT_14
uint8_t mcp3421_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mcp3421_interface_iic_init(void)
interface iic bus init
uint8_t mcp3421_interface_iic_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
uint8_t mcp3421_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
void mcp3421_interface_delay_ms(uint32_t ms)
interface delay ms
void mcp3421_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mcp3421_register_test(void)
register test
uint32_t driver_version
char manufacturer_name[32]