LibDriver LM75B
Loading...
Searching...
No Matches
driver_lm75b_basic.c
Go to the documentation of this file.
1
37
38#include "driver_lm75b_basic.h"
39
40static lm75b_handle_t gs_handle;
41
51{
52 uint8_t res;
53
54 /* link interface function */
62
63 /* set addr pin */
64 res = lm75b_set_addr_pin(&gs_handle, addr);
65 if (res != 0)
66 {
67 lm75b_interface_debug_print("lm75b: set addr pin failed.\n");
68
69 return 1;
70 }
71
72 /* lm75b init */
73 res = lm75b_init(&gs_handle);
74 if (res != 0)
75 {
76 lm75b_interface_debug_print("lm75b: init failed.\n");
77
78 return 1;
79 }
80
81 /* set interrupt mode */
83 if (res != 0)
84 {
85 lm75b_interface_debug_print("lm75b: set interrupt mode failed.\n");
86 (void)lm75b_deinit(&gs_handle);
87
88 return 1;
89 }
90
91 /* set fault queue 1 */
93 if (res != 0)
94 {
95 lm75b_interface_debug_print("lm75b: set fault queue failed.\n");
96 (void)lm75b_deinit(&gs_handle);
97
98 return 1;
99 }
100
101 /* set os polarity low*/
103 if (res != 0)
104 {
105 lm75b_interface_debug_print("lm75b: set os polarity failed.\n");
106 (void)lm75b_deinit(&gs_handle);
107
108 return 1;
109 }
110
111 /* set over temperature threshold */
112 res = lm75b_set_over_temperature_threshold(&gs_handle, 0xFF80U);
113 if (res != 0)
114 {
115 lm75b_interface_debug_print("lm75b: set over temperature threshold failed.\n");
116 (void)lm75b_deinit(&gs_handle);
117
118 return 1;
119 }
120
121 /* set hysteresis */
122 res = lm75b_set_hysteresis(&gs_handle, 0x0000U);
123 if (res != 0)
124 {
125 lm75b_interface_debug_print("lm75b: set hysteresis failed.\n");
126 (void)lm75b_deinit(&gs_handle);
127
128 return 1;
129 }
130
131 /* set normal mode */
132 res = lm75b_set_mode(&gs_handle, LM75B_MODE_NORMAL);
133 if (res != 0)
134 {
135 lm75b_interface_debug_print("lm75b: set mode failed.\n");
136 (void)lm75b_deinit(&gs_handle);
137
138 return 1;
139 }
140
141 return 0;
142}
143
152uint8_t lm75b_basic_read(float *s)
153{
154 uint16_t raw;
155
156 /* read adc data */
157 if (lm75b_read(&gs_handle, (uint16_t *)&raw, (float *)s) != 0)
158 {
159 return 1;
160 }
161 else
162 {
163 return 0;
164 }
165}
166
175{
176 uint8_t res;
177
178 /* set mode */
179 res = lm75b_set_mode(&gs_handle, LM75B_MODE_SHUTDOWN);
180 if (res != 0)
181 {
182 return 1;
183 }
184
185 /* close lm75b */
186 if (lm75b_deinit(&gs_handle) != 0)
187 {
188 return 1;
189 }
190 else
191 {
192 return 0;
193 }
194}
driver lm75b basic 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
uint8_t lm75b_read(lm75b_handle_t *handle, uint16_t *raw, float *s)
read data from the chip
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_MODE_SHUTDOWN
@ LM75B_FAULT_QUEUE_1
@ LM75B_OS_POLARITY_LOW
@ LM75B_OS_OPERATION_INTERRUPT
uint8_t lm75b_basic_read(float *s)
basic example read
uint8_t lm75b_basic_init(lm75b_address_t addr)
basic example init
uint8_t lm75b_basic_deinit(void)
basic example deinit
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