LibDriver LM75B
Loading...
Searching...
No Matches
driver_lm75b_read_test.c
Go to the documentation of this file.
1
37
39
40static lm75b_handle_t gs_handle;
41
51uint8_t lm75b_read_test(lm75b_address_t addr, uint32_t times)
52{
53 uint8_t res;
54 uint32_t i;
55 uint16_t raw;
56 float s;
57 lm75b_info_t info;
58
59 /* link interface function */
67
68 /* get lm75b info */
69 res = lm75b_info(&info);
70 if (res != 0)
71 {
72 lm75b_interface_debug_print("lm75b: get info failed.\n");
73
74 return 1;
75 }
76 else
77 {
78 /* print chip information */
79 lm75b_interface_debug_print("lm75b: chip is %s.\n", info.chip_name);
80 lm75b_interface_debug_print("lm75b: manufacturer is %s.\n", info.manufacturer_name);
81 lm75b_interface_debug_print("lm75b: interface is %s.\n", info.interface);
82 lm75b_interface_debug_print("lm75b: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
83 lm75b_interface_debug_print("lm75b: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
84 lm75b_interface_debug_print("lm75b: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
85 lm75b_interface_debug_print("lm75b: max current is %0.2fmA.\n", info.max_current_ma);
86 lm75b_interface_debug_print("lm75b: max temperature is %0.1fC.\n", info.temperature_max);
87 lm75b_interface_debug_print("lm75b: min temperature is %0.1fC.\n", info.temperature_min);
88 }
89
90 /* set addr pin */
91 res = lm75b_set_addr_pin(&gs_handle, addr);
92 if (res != 0)
93 {
94 lm75b_interface_debug_print("lm75b: set addr pin failed.\n");
95
96 return 1;
97 }
98
99 /* lm75b init */
100 res = lm75b_init(&gs_handle);
101 if (res != 0)
102 {
103 lm75b_interface_debug_print("lm75b: init failed.\n");
104
105 return 1;
106 }
107
108 /* set interrupt mode */
110 if (res != 0)
111 {
112 lm75b_interface_debug_print("lm75b: set interrupt mode failed.\n");
113 (void)lm75b_deinit(&gs_handle);
114
115 return 1;
116 }
117
118 /* set fault queue 1 */
120 if (res != 0)
121 {
122 lm75b_interface_debug_print("lm75b: set fault queue failed.\n");
123 (void)lm75b_deinit(&gs_handle);
124
125 return 1;
126 }
127
128 /* set os polarity low*/
130 if (res != 0)
131 {
132 lm75b_interface_debug_print("lm75b: set os polarity failed.\n");
133 (void)lm75b_deinit(&gs_handle);
134
135 return 1;
136 }
137
138 /* set over temperature threshold */
139 res = lm75b_set_over_temperature_threshold(&gs_handle, 0xFF80U);
140 if (res != 0)
141 {
142 lm75b_interface_debug_print("lm75b: set over temperature threshold failed.\n");
143 (void)lm75b_deinit(&gs_handle);
144
145 return 1;
146 }
147
148 /* set hysteresis */
149 res = lm75b_set_hysteresis(&gs_handle, 0x0000U);
150 if (res != 0)
151 {
152 lm75b_interface_debug_print("lm75b: set hysteresis failed.\n");
153 (void)lm75b_deinit(&gs_handle);
154
155 return 1;
156 }
157
158 /* set normal mode */
159 res = lm75b_set_mode(&gs_handle, LM75B_MODE_NORMAL);
160 if (res != 0)
161 {
162 lm75b_interface_debug_print("lm75b: set mode failed.\n");
163 (void)lm75b_deinit(&gs_handle);
164
165 return 1;
166 }
167
168 /* start read test */
169 lm75b_interface_debug_print("lm75b: start read test.\n");
170 for (i = 0; i < times; i++)
171 {
173
174 /* read data */
175 res = lm75b_read(&gs_handle, (uint16_t *)&raw, (float *)&s);
176 if (res != 0)
177 {
178 lm75b_interface_debug_print("lm75b: read failed.\n");
179 (void)lm75b_deinit(&gs_handle);
180
181 return 1;
182 }
183 lm75b_interface_debug_print("lm75b: temperature is %0.3fC.\n", s);
184 }
185
186 /* finish read test */
187 lm75b_interface_debug_print("lm75b: finish read test.\n");
188 (void)lm75b_deinit(&gs_handle);
189
190 return 0;
191}
driver lm75b read test header file
struct lm75b_handle_s lm75b_handle_t
lm75b handle structure definition
uint8_t lm75b_set_mode(lm75b_handle_t *handle, lm75b_mode_t mode)
set the chip mode
lm75b_address_t
lm75b address enumeration definition
struct lm75b_info_s lm75b_info_t
lm75b information structure definition
uint8_t lm75b_read(lm75b_handle_t *handle, uint16_t *raw, float *s)
read data from the chip
uint8_t lm75b_info(lm75b_info_t *info)
get chip's information
uint8_t lm75b_set_addr_pin(lm75b_handle_t *handle, lm75b_address_t addr_pin)
set the iic address pin
uint8_t lm75b_init(lm75b_handle_t *handle)
initialize the chip
uint8_t lm75b_deinit(lm75b_handle_t *handle)
close the chip
@ LM75B_MODE_NORMAL
@ LM75B_FAULT_QUEUE_1
@ LM75B_OS_POLARITY_LOW
@ LM75B_OS_OPERATION_INTERRUPT
uint8_t lm75b_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t lm75b_interface_iic_init(void)
interface iic bus init
void lm75b_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t lm75b_interface_iic_deinit(void)
interface iic bus deinit
uint8_t lm75b_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void lm75b_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t lm75b_set_hysteresis(lm75b_handle_t *handle, uint16_t hysteresis)
set the hysteresis value
uint8_t lm75b_set_os_polarity(lm75b_handle_t *handle, lm75b_os_polarity_t polarity)
set the chip os polarity
uint8_t lm75b_set_interrupt_mode(lm75b_handle_t *handle, lm75b_os_operation_mode_t mode)
set the chip interrupt mode
uint8_t lm75b_set_fault_queue(lm75b_handle_t *handle, lm75b_fault_queue_t fault_queue)
set the chip fault queue
uint8_t lm75b_set_over_temperature_threshold(lm75b_handle_t *handle, uint16_t threshold)
set the over temperature threshold
uint8_t lm75b_read_test(lm75b_address_t addr, uint32_t times)
read test
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char interface[8]
char chip_name[32]