LibDriver CS1237
Loading...
Searching...
No Matches
driver_cs1237_basic.c
Go to the documentation of this file.
1
36
37#include "driver_cs1237_basic.h"
38
39static cs1237_handle_t gs_handle;
40
51uint8_t cs1237_basic_init(float reference_voltage_v, int32_t temperature_raw, float temperature_deg)
52{
53 uint8_t res;
54
55 /* link interface function */
67
68 /* set reference voltage */
69 res = cs1237_set_reference_voltage(&gs_handle, reference_voltage_v);
70 if (res != 0)
71 {
72 cs1237_interface_debug_print("cs1237: set reference voltage failed.\n");
73 (void)cs1237_deinit(&gs_handle);
74
75 return 1;
76 }
77
78 /* set temperature calibration point */
79 res = cs1237_set_temperature_calibration_point(&gs_handle, temperature_raw, temperature_deg);
80 if (res != 0)
81 {
82 cs1237_interface_debug_print("cs1237: set temperature calibration point failed.\n");
83 (void)cs1237_deinit(&gs_handle);
84
85 return 1;
86 }
87
88 /* cs1237 init */
89 res = cs1237_init(&gs_handle);
90 if (res != 0)
91 {
92 cs1237_interface_debug_print("cs1237: init failed.\n");
93
94 return 1;
95 }
96
97 /* wake up */
98 res = cs1237_wake_up(&gs_handle);
99 if (res != 0)
100 {
101 cs1237_interface_debug_print("cs1237: wake up failed.\n");
102 (void)cs1237_deinit(&gs_handle);
103
104 return 1;
105 }
106
107 /* enable reference voltage output */
109 if (res != 0)
110 {
111 cs1237_interface_debug_print("cs1237: set reference voltage output failed.\n");
112 (void)cs1237_deinit(&gs_handle);
113
114 return 1;
115 }
116
117 /* set default adc rate */
119 if (res != 0)
120 {
121 cs1237_interface_debug_print("cs1237: set adc rate failed.\n");
122 (void)cs1237_deinit(&gs_handle);
123
124 return 1;
125 }
126
127 /* set default channel */
129 if (res != 0)
130 {
131 cs1237_interface_debug_print("cs1237: set channel failed.\n");
132 (void)cs1237_deinit(&gs_handle);
133
134 return 1;
135 }
136
137 /* set default pga */
138 res = cs1237_set_pga(&gs_handle, CS1237_BASIC_DEFAULT_PGA);
139 if (res != 0)
140 {
141 cs1237_interface_debug_print("cs1237: set pga failed.\n");
142 (void)cs1237_deinit(&gs_handle);
143
144 return 1;
145 }
146
147 return 0;
148}
149
158uint8_t cs1237_basic_read(double *mv)
159{
160 uint8_t res;
161 int32_t raw;
162
163 /* read */
164 res = cs1237_read(&gs_handle, &raw, mv);
165 if (res != 0)
166 {
167 return 1;
168 }
169
170 return 0;
171}
172
181uint8_t cs1237_basic_read_temperature(float *degrees)
182{
183 uint8_t res;
184 int32_t raw;
185
186 /* set channel temperature */
188 if (res != 0)
189 {
190 cs1237_interface_debug_print("cs1237: set channel failed.\n");
191 (void)cs1237_deinit(&gs_handle);
192
193 return 1;
194 }
195
196 /* set pga 1 */
197 res = cs1237_set_pga(&gs_handle, CS1237_PGA_1);
198 if (res != 0)
199 {
200 cs1237_interface_debug_print("cs1237: set pga failed.\n");
201 (void)cs1237_deinit(&gs_handle);
202
203 return 1;
204 }
205
206 /* read */
207 res = cs1237_read_temperature(&gs_handle, &raw, degrees);
208 if (res != 0)
209 {
210 return 1;
211 }
212
213 /* set default channel */
215 if (res != 0)
216 {
217 cs1237_interface_debug_print("cs1237: set channel failed.\n");
218 (void)cs1237_deinit(&gs_handle);
219
220 return 1;
221 }
222
223 /* set default pga */
224 res = cs1237_set_pga(&gs_handle, CS1237_BASIC_DEFAULT_PGA);
225 if (res != 0)
226 {
227 cs1237_interface_debug_print("cs1237: set pga failed.\n");
228 (void)cs1237_deinit(&gs_handle);
229
230 return 1;
231 }
232
233 return 0;
234}
235
244{
245 uint8_t res;
246
247 /* deinit cs1237 */
248 res = cs1237_deinit(&gs_handle);
249 if (res != 0)
250 {
251 return 1;
252 }
253
254 return 0;
255}
256
265{
266 uint8_t res;
267
268 /* wake up */
269 res = cs1237_wake_up(&gs_handle);
270 if (res != 0)
271 {
272 return 1;
273 }
274
275 return 0;
276}
277
286{
287 uint8_t res;
288
289 /* power down */
290 res = cs1237_power_down(&gs_handle);
291 if (res != 0)
292 {
293 return 1;
294 }
295
296 return 0;
297}
driver cs1237 basic header file
uint8_t cs1237_set_adc_rate(cs1237_handle_t *handle, cs1237_adc_rate_t rate)
set adc rate
uint8_t cs1237_read_temperature(cs1237_handle_t *handle, int32_t *raw, float *degrees)
read temperature
uint8_t cs1237_set_reference_voltage_output(cs1237_handle_t *handle, cs1237_bool_t enable)
enable or disable reference voltage output
struct cs1237_handle_s cs1237_handle_t
cs1237 handle structure definition
uint8_t cs1237_deinit(cs1237_handle_t *handle)
close the chip
uint8_t cs1237_read(cs1237_handle_t *handle, int32_t *raw, double *mv)
read voltage
uint8_t cs1237_set_reference_voltage(cs1237_handle_t *handle, float volt)
set reference voltage
uint8_t cs1237_wake_up(cs1237_handle_t *handle)
wake up
uint8_t cs1237_set_pga(cs1237_handle_t *handle, cs1237_pga_t pga)
set adc pga
uint8_t cs1237_power_down(cs1237_handle_t *handle)
power down
uint8_t cs1237_set_temperature_calibration_point(cs1237_handle_t *handle, int32_t temperature_raw, float temperature_deg)
set temperature calibration point
uint8_t cs1237_set_channel(cs1237_handle_t *handle, cs1237_channel_t channel)
set adc channel
uint8_t cs1237_init(cs1237_handle_t *handle)
initialize the chip
@ CS1237_BOOL_TRUE
@ CS1237_PGA_1
@ CS1237_CHANNEL_TEMPERATURE
#define CS1237_BASIC_DEFAULT_PGA
uint8_t cs1237_basic_init(float reference_voltage_v, int32_t temperature_raw, float temperature_deg)
basic example init
uint8_t cs1237_basic_read_temperature(float *degrees)
basic example read temperature
uint8_t cs1237_basic_deinit(void)
basic example deinit
#define CS1237_BASIC_DEFAULT_ADC_RATE
cs1237 basic example default definition
uint8_t cs1237_basic_wake_up(void)
basic example wake up
uint8_t cs1237_basic_read(double *mv)
basic example read
uint8_t cs1237_basic_power_down(void)
basic example power down
#define CS1237_BASIC_DEFAULT_CHANNEL
void cs1237_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t cs1237_interface_dout_gpio_deinit(void)
interface dout gpio deinit
uint8_t cs1237_interface_sclk_gpio_write(uint8_t level)
interface sclk gpio write
uint8_t cs1237_interface_sclk_gpio_deinit(void)
interface sclk gpio deinit
uint8_t cs1237_interface_dout_gpio_init(void)
interface dout gpio init
uint8_t cs1237_interface_sclk_gpio_init(void)
interface sclk gpio init
void cs1237_interface_delay_ms(uint32_t ms)
interface delay ms
void cs1237_interface_delay_us(uint32_t us)
interface delay us
uint8_t cs1237_interface_dout_gpio_read(uint8_t *level)
interface dout gpio read
uint8_t cs1237_interface_dout_gpio_write(uint8_t level)
interface dout gpio write