37#ifndef DRIVER_CS1237_H
38#define DRIVER_CS1237_H
62#ifndef CS1237_COMMAND_DATA_DELAY
63 #define CS1237_COMMAND_DATA_DELAY 5
163#define DRIVER_CS1237_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
171#define DRIVER_CS1237_LINK_SCLK_GPIO_INIT(HANDLE, FUC) (HANDLE)->sclk_gpio_init = FUC
179#define DRIVER_CS1237_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->sclk_gpio_deinit = FUC
187#define DRIVER_CS1237_LINK_SCLK_GPIO_WRITE(HANDLE, FUC) (HANDLE)->sclk_gpio_write = FUC
195#define DRIVER_CS1237_LINK_DOUT_GPIO_INIT(HANDLE, FUC) (HANDLE)->dout_gpio_init = FUC
203#define DRIVER_CS1237_LINK_DOUT_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->dout_gpio_deinit = FUC
211#define DRIVER_CS1237_LINK_DOUT_GPIO_WRITE(HANDLE, FUC) (HANDLE)->dout_gpio_write = FUC
219#define DRIVER_CS1237_LINK_DOUT_GPIO_READ(HANDLE, FUC) (HANDLE)->dout_gpio_read = FUC
227#define DRIVER_CS1237_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
235#define DRIVER_CS1237_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
243#define DRIVER_CS1237_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
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
uint8_t cs1237_get_channel(cs1237_handle_t *handle, cs1237_channel_t *channel)
get adc channel
struct cs1237_handle_s cs1237_handle_t
cs1237 handle structure definition
uint8_t cs1237_get_temperature_calibration_point(cs1237_handle_t *handle, int32_t *temperature_raw, float *temperature_deg)
get temperature calibration point
uint8_t cs1237_deinit(cs1237_handle_t *handle)
close the chip
uint8_t cs1237_get_reference_voltage(cs1237_handle_t *handle, float *volt)
get reference voltage
uint8_t cs1237_info(cs1237_info_t *info)
get chip's information
cs1237_bool_t
cs1237 bool enumeration definition
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_get_pga(cs1237_handle_t *handle, cs1237_pga_t *pga)
get adc pga
uint8_t cs1237_get_adc_rate(cs1237_handle_t *handle, cs1237_adc_rate_t *rate)
get adc rate
uint8_t cs1237_set_pga(cs1237_handle_t *handle, cs1237_pga_t pga)
set adc pga
uint8_t cs1237_get_reference_voltage_output(cs1237_handle_t *handle, cs1237_bool_t *enable)
get reference voltage output status
uint8_t cs1237_power_down(cs1237_handle_t *handle)
power down
cs1237_pga_t
cs1237 pga enumeration definition
uint8_t cs1237_set_temperature_calibration_point(cs1237_handle_t *handle, int32_t temperature_raw, float temperature_deg)
set temperature calibration point
cs1237_adc_rate_t
cs1237 adc rate enumeration definition
struct cs1237_info_s cs1237_info_t
cs1237 information structure definition
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_channel_t
cs1237 channel enumeration definition
@ CS1237_CHANNEL_SHORT_CIRCUIT
@ CS1237_CHANNEL_TEMPERATURE
uint8_t cs1237_get_command(cs1237_handle_t *handle, uint8_t command, uint8_t *config)
get command
uint8_t cs1237_get_data(cs1237_handle_t *handle, int32_t *data)
get data
uint8_t cs1237_set_command(cs1237_handle_t *handle, uint8_t command, uint8_t config)
set command
cs1237 handle structure definition
float reference_voltage_v
void(* delay_ms)(uint32_t ms)
uint8_t(* sclk_gpio_deinit)(void)
uint8_t(* dout_gpio_init)(void)
uint8_t(* dout_gpio_write)(uint8_t level)
void(* debug_print)(const char *const fmt,...)
void(* delay_us)(uint32_t us)
uint8_t(* sclk_gpio_init)(void)
uint8_t(* dout_gpio_deinit)(void)
uint8_t(* dout_gpio_read)(uint8_t *level)
uint8_t(* sclk_gpio_write)(uint8_t level)
cs1237 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v