LibDriver CCS811
Loading...
Searching...
No Matches
driver_ccs811_read_test.c
Go to the documentation of this file.
1
36
38
39static ccs811_handle_t gs_handle;
40
50uint8_t ccs811_read_test(ccs811_address_t addr_pin, uint32_t times)
51{
52 uint8_t res;
53 uint32_t i;
54 uint16_t eco2_ppm;
55 uint16_t tvoc_ppb;
56 ccs811_info_t info;
57
58 /* link functions */
75
76 /* ccs811 info */
77 res = ccs811_info(&info);
78 if (res != 0)
79 {
80 ccs811_interface_debug_print("ccs811: get info failed.\n");
81
82 return 1;
83 }
84 else
85 {
86 /* print chip information */
87 ccs811_interface_debug_print("ccs811: chip is %s.\n", info.chip_name);
88 ccs811_interface_debug_print("ccs811: manufacturer is %s.\n", info.manufacturer_name);
89 ccs811_interface_debug_print("ccs811: interface is %s.\n", info.interface);
90 ccs811_interface_debug_print("ccs811: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
91 ccs811_interface_debug_print("ccs811: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
92 ccs811_interface_debug_print("ccs811: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
93 ccs811_interface_debug_print("ccs811: max current is %0.2fmA.\n", info.max_current_ma);
94 ccs811_interface_debug_print("ccs811: max temperature is %0.1fC.\n", info.temperature_max);
95 ccs811_interface_debug_print("ccs811: min temperature is %0.1fC.\n", info.temperature_min);
96 }
97
98 /* start read test */
99 ccs811_interface_debug_print("ccs811: start read test.\n");
100
101 /* set addr pin */
102 res = ccs811_set_addr_pin(&gs_handle, addr_pin);
103 if (res != 0)
104 {
105 ccs811_interface_debug_print("ccs811: set addr pin failed.\n");
106
107 return 1;
108 }
109
110 /* ccs811 init */
111 res = ccs811_init(&gs_handle);
112 if (res != 0)
113 {
114 ccs811_interface_debug_print("ccs811: init failed.\n");
115
116 return 1;
117 }
118
119 /* app start */
120 res = ccs811_app_start(&gs_handle);
121 if (res != 0)
122 {
123 ccs811_interface_debug_print("ccs811: start failed.\n");
124 (void)ccs811_deinit(&gs_handle);
125
126 return 1;
127 }
128
129 /* set high constant power */
131 if (res != 0)
132 {
133 ccs811_interface_debug_print("ccs811: set mode failed.\n");
134 (void)ccs811_deinit(&gs_handle);
135
136 return 1;
137 }
138
139 /* read test */
140 ccs811_interface_debug_print("ccs811: read test.\n");
141
142 /* delay 1s */
144
145 for (i = 0; i < times; i++)
146 {
147 uint16_t raw;
148
149 /* read data */
150 res = ccs811_read(&gs_handle, &eco2_ppm, &tvoc_ppb, &raw);
151 if (res != 0)
152 {
153 ccs811_interface_debug_print("ccs811: read failed.\n");
154 (void)ccs811_deinit(&gs_handle);
155
156 return 1;
157 }
158
159 /* output */
160 ccs811_interface_debug_print("ccs811: eco2 ppm is %d ppm.\n", eco2_ppm);
161 ccs811_interface_debug_print("ccs811: tvoc ppb is %d ppb.\n", tvoc_ppb);
162
163 /* delay 1s */
165 }
166
167 /* read raw test */
168 ccs811_interface_debug_print("ccs811: read raw test.\n");
169
170 for (i = 0; i < times; i++)
171 {
172 uint16_t raw;
173 uint8_t ua;
174 uint16_t adc_raw;
175 float adc_v;
176
177 /* get raw data */
178 res = ccs811_get_raw_data(&gs_handle, &raw, &ua, &adc_raw, &adc_v);
179 if (res != 0)
180 {
181 ccs811_interface_debug_print("ccs811: get raw data failed.\n");
182 (void)ccs811_deinit(&gs_handle);
183
184 return 1;
185 }
186
187 /* output */
188 ccs811_interface_debug_print("ccs811: raw is 0x%04X.\n", raw);
189 ccs811_interface_debug_print("ccs811: ua is %duA.\n", ua);
190 ccs811_interface_debug_print("ccs811: adc is %.02fV.\n", adc_v);
191
192 /* delay 1s */
194 }
195
196 /* finish read test */
197 ccs811_interface_debug_print("ccs811: finish read test.\n");
198 (void)ccs811_deinit(&gs_handle);
199
200 return 0;
201}
driver ccs811 read test header file
uint8_t ccs811_app_start(ccs811_handle_t *handle)
app start
struct ccs811_info_s ccs811_info_t
ccs811 information structure definition
uint8_t ccs811_set_addr_pin(ccs811_handle_t *handle, ccs811_address_t addr_pin)
set address pin
struct ccs811_handle_s ccs811_handle_t
ccs811 handle structure definition
ccs811_address_t
ccs811 address enumeration definition
uint8_t ccs811_set_mode(ccs811_handle_t *handle, ccs811_mode_t mode)
set mode
uint8_t ccs811_read(ccs811_handle_t *handle, uint16_t *eco2_ppm, uint16_t *tvoc_ppb, uint16_t *raw)
read data
uint8_t ccs811_info(ccs811_info_t *info)
get chip information
uint8_t ccs811_init(ccs811_handle_t *handle)
initialize the chip
uint8_t ccs811_deinit(ccs811_handle_t *handle)
close the chip
uint8_t ccs811_get_raw_data(ccs811_handle_t *handle, uint16_t *raw, uint8_t *ua, uint16_t *adc_raw, float *adc_v)
get raw data
@ CCS811_MODE_HIGH_CONSTANT_POWER
uint8_t ccs811_interface_gpio_reset_init(void)
interface gpio reset init
void ccs811_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ccs811_interface_gpio_reset_deinit(void)
interface gpio reset deinit
uint8_t ccs811_interface_gpio_reset_write(uint8_t level)
interface gpio reset write
uint8_t ccs811_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t ccs811_interface_iic_deinit(void)
interface iic bus deinit
uint8_t ccs811_interface_gpio_wake_init(void)
interface gpio wake init
uint8_t ccs811_interface_gpio_wake_write(uint8_t level)
interface gpio wake write
uint8_t ccs811_interface_bin_read_deinit(void)
interface bin read deinit
uint8_t ccs811_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t ccs811_interface_bin_read(uint32_t addr, uint16_t size, uint8_t *buffer)
interface bin read
uint8_t ccs811_interface_bin_read_init(char *name, uint32_t *size)
interface bin read init
uint8_t ccs811_interface_gpio_wake_deinit(void)
interface gpio wake deinit
uint8_t ccs811_interface_iic_init(void)
interface iic bus init
void ccs811_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t ccs811_read_test(ccs811_address_t addr_pin, uint32_t times)
read test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]