LibDriver QMC5883L
Loading...
Searching...
No Matches
driver_qmc5883l_basic.c
Go to the documentation of this file.
1
36
38
39static qmc5883l_handle_t gs_handle;
40
49{
50 uint8_t res;
51
52 /* link interface function */
60
61 /* qmc5883l init */
62 res = qmc5883l_init(&gs_handle);
63 if (res != 0)
64 {
65 qmc5883l_interface_debug_print("qmc5883l: init failed.\n");
66
67 return 1;
68 }
69
70 /* set the default period */
72 if (res != 0)
73 {
74 qmc5883l_interface_debug_print("qmc5883l: set period failed.\n");
75 (void)qmc5883l_deinit(&gs_handle);
76
77 return 1;
78 }
79
80 /* set the default pointer roll over */
82 if (res != 0)
83 {
84 qmc5883l_interface_debug_print("qmc5883l: set pointer roll over failed.\n");
85 (void)qmc5883l_deinit(&gs_handle);
86
87 return 1;
88 }
89
90 /* set the default interrupt */
92 if (res != 0)
93 {
94 qmc5883l_interface_debug_print("qmc5883l: set interrupt failed.\n");
95 (void)qmc5883l_deinit(&gs_handle);
96
97 return 1;
98 }
99
100 /* set the default over sample */
102 if (res != 0)
103 {
104 qmc5883l_interface_debug_print("qmc5883l: set over sample failed.\n");
105 (void)qmc5883l_deinit(&gs_handle);
106
107 return 1;
108 }
109
110 /* set the default full scale */
112 if (res != 0)
113 {
114 qmc5883l_interface_debug_print("qmc5883l: set full scale failed.\n");
115 (void)qmc5883l_deinit(&gs_handle);
116
117 return 1;
118 }
119
120 /* set the default output rate */
122 if (res != 0)
123 {
124 qmc5883l_interface_debug_print("qmc5883l: set output rate failed.\n");
125 (void)qmc5883l_deinit(&gs_handle);
126
127 return 1;
128 }
129
130 /* set the default mode */
132 if (res != 0)
133 {
134 qmc5883l_interface_debug_print("qmc5883l: set mode failed.\n");
135 (void)qmc5883l_deinit(&gs_handle);
136
137 return 1;
138 }
139
140 return 0;
141}
142
151uint8_t qmc5883l_basic_read(float m_gauss[3])
152{
153 int16_t raw[3];
154
155 /* read x, y, z data */
156 if (qmc5883l_read(&gs_handle, (int16_t *)raw, m_gauss) != 0)
157 {
158 return 1;
159 }
160
161 return 0;
162}
163
172{
173 /* close qmc5883l */
174 if (qmc5883l_deinit(&gs_handle) != 0)
175 {
176 return 1;
177 }
178
179 return 0;
180}
driver qmc5883l basic header file
uint8_t qmc5883l_set_full_scale(qmc5883l_handle_t *handle, qmc5883l_full_scale_t scale)
set the full scale
uint8_t qmc5883l_read(qmc5883l_handle_t *handle, int16_t raw[3], float m_gauss[3])
read data
uint8_t qmc5883l_set_over_sample(qmc5883l_handle_t *handle, qmc5883l_over_sample_t sample)
set the over sample
uint8_t qmc5883l_init(qmc5883l_handle_t *handle)
initialize the chip
uint8_t qmc5883l_set_pointer_roll_over(qmc5883l_handle_t *handle, qmc5883l_bool_t enable)
enable or disable pointer roll over
struct qmc5883l_handle_s qmc5883l_handle_t
qmc5883l handle structure definition
uint8_t qmc5883l_set_interrupt(qmc5883l_handle_t *handle, qmc5883l_bool_t enable)
enable or disable interrupt
uint8_t qmc5883l_set_period(qmc5883l_handle_t *handle, uint8_t fbr)
set period
uint8_t qmc5883l_deinit(qmc5883l_handle_t *handle)
close the chip
uint8_t qmc5883l_set_output_rate(qmc5883l_handle_t *handle, qmc5883l_output_rate_t rate)
set the output rate
uint8_t qmc5883l_set_mode(qmc5883l_handle_t *handle, qmc5883l_mode_t mode)
set the chip mode
@ QMC5883L_MODE_CONTINUOUS
#define QMC5883L_BASIC_DEFAULT_OUTPUT_RATE
#define QMC5883L_BASIC_DEFAULT_INTERRUPT
#define QMC5883L_BASIC_DEFAULT_POINTER_ROLL_OVER
#define QMC5883L_BASIC_DEFAULT_FULL_SCALE
uint8_t qmc5883l_basic_init(void)
basic example init
uint8_t qmc5883l_basic_deinit(void)
basic example deinit
#define QMC5883L_BASIC_DEFAULT_OVER_SAMPLE
#define QMC5883L_BASIC_DEFAULT_PERIOD
qmc5883l basic example default definition
uint8_t qmc5883l_basic_read(float m_gauss[3])
basic example read
uint8_t qmc5883l_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t qmc5883l_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void qmc5883l_interface_delay_ms(uint32_t ms)
interface delay ms
void qmc5883l_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t qmc5883l_interface_iic_init(void)
interface iic bus init
uint8_t qmc5883l_interface_iic_deinit(void)
interface iic bus deinit