147
147
< li > < a href ="index.html "> ADC APIs</ a > »</ li >
148
148
< li > ADS1x15 I2C ADC</ li >
149
149
< li class ="wy-breadcrumbs-aside ">
150
- < a href ="https://github.com/esp-cpp/espp/blob/add807f /docs/en/adc/ads1x15.rst " class ="fa fa-github "> Edit on GitHub</ a >
150
+ < a href ="https://github.com/esp-cpp/espp/blob/75b014e /docs/en/adc/ads1x15.rst " class ="fa fa-github "> Edit on GitHub</ a >
151
151
</ li >
152
152
</ ul >
153
153
< hr />
@@ -164,7 +164,7 @@ <h2>API Reference<a class="headerlink" href="#api-reference" title="Permalink to
164
164
< section id ="header-file ">
165
165
< h3 > Header File< a class ="headerlink " href ="#header-file " title ="Permalink to this headline "> </ a > </ h3 >
166
166
< ul class ="simple ">
167
- < li > < p > < a class ="reference external " href ="https://github.com/esp-cpp/espp/blob/add807f /components/ads1x15/include/ads1x15.hpp "> components/ads1x15/include/ads1x15.hpp</ a > </ p > </ li >
167
+ < li > < p > < a class ="reference external " href ="https://github.com/esp-cpp/espp/blob/75b014e /components/ads1x15/include/ads1x15.hpp "> components/ads1x15/include/ads1x15.hpp</ a > </ p > </ li >
168
168
</ ul >
169
169
</ section >
170
170
< section id ="classes ">
@@ -176,35 +176,18 @@ <h3>Classes<a class="headerlink" href="#classes" title="Permalink to this headli
176
176
< section id ="classespp_1_1_ads1x15_1ads1x15_ex1 ">
177
177
< h4 > ADS1X15 Example< a class ="headerlink " href ="#classespp_1_1_ads1x15_1ads1x15_ex1 " title ="Permalink to this headline "> </ a > </ h4 >
178
178
< p id ="classespp_1_1_ads1x15_1ads1x15_ex1 "> < div class ="highlight-cpp notranslate "> < div class ="highlight "> < pre > < span > </ span > < span class ="w "> </ span > < span class ="c1 "> // make the I2C that we'll use to communicate</ span >
179
- < span class ="w "> </ span > < span class ="n "> i2c_config_t</ span > < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> ;</ span >
180
- < span class ="w "> </ span > < span class ="n "> logger</ span > < span class ="p "> .</ span > < span class ="n "> info</ span > < span class ="p "> (</ span > < span class ="s "> "initializing i2c driver..."</ span > < span class ="p "> );</ span >
181
- < span class ="w "> </ span > < span class ="n "> memset</ span > < span class ="p "> (</ span > < span class ="o "> &</ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="k "> sizeof</ span > < span class ="p "> (</ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> ));</ span >
182
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> sda_io_num</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> I2C_SDA_IO</ span > < span class ="p "> ;</ span > < span class ="w "> </ span > < span class ="c1 "> // pin 3 on the joybonnet</ span >
183
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> scl_io_num</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> I2C_SCL_IO</ span > < span class ="p "> ;</ span > < span class ="w "> </ span > < span class ="c1 "> // pin 5 on the joybonnet</ span >
184
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> mode</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> I2C_MODE_MASTER</ span > < span class ="p "> ;</ span >
185
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> sda_pullup_en</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> GPIO_PULLUP_ENABLE</ span > < span class ="p "> ;</ span >
186
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> scl_pullup_en</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> GPIO_PULLUP_ENABLE</ span > < span class ="p "> ;</ span >
187
- < span class ="w "> </ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> .</ span > < span class ="n "> master</ span > < span class ="p "> .</ span > < span class ="n "> clk_speed</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> I2C_FREQ_HZ</ span > < span class ="p "> ;</ span >
188
- < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> i2c_param_config</ span > < span class ="p "> (</ span > < span class ="n "> I2C_NUM</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="o "> &</ span > < span class ="n "> i2c_cfg</ span > < span class ="p "> );</ span >
189
- < span class ="w "> </ span > < span class ="k "> if</ span > < span class ="w "> </ span > < span class ="p "> (</ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> !=</ span > < span class ="w "> </ span > < span class ="n "> ESP_OK</ span > < span class ="p "> )</ span >
190
- < span class ="w "> </ span > < span class ="n "> logger</ span > < span class ="p "> .</ span > < span class ="n "> error</ span > < span class ="p "> (</ span > < span class ="s "> "config i2c failed"</ span > < span class ="p "> );</ span >
191
- < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> i2c_driver_install</ span > < span class ="p "> (</ span > < span class ="n "> I2C_NUM</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> I2C_MODE_MASTER</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="mi "> 0</ span > < span class ="p "> );</ span >
192
- < span class ="w "> </ span > < span class ="k "> if</ span > < span class ="w "> </ span > < span class ="p "> (</ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> !=</ span > < span class ="w "> </ span > < span class ="n "> ESP_OK</ span > < span class ="p "> )</ span >
193
- < span class ="w "> </ span > < span class ="n "> logger</ span > < span class ="p "> .</ span > < span class ="n "> error</ span > < span class ="p "> (</ span > < span class ="s "> "install i2c driver failed"</ span > < span class ="p "> );</ span >
194
- < span class ="w "> </ span > < span class ="c1 "> // make some lambda functions we'll use to read/write to the i2c adc</ span >
195
- < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> ads_write</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="p "> [](</ span > < span class ="kt "> uint8_t</ span > < span class ="w "> </ span > < span class ="n "> dev_addr</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kt "> uint8_t</ span > < span class ="w "> </ span > < span class ="o "> *</ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kt "> size_t</ span > < span class ="w "> </ span > < span class ="n "> data_len</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
196
- < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> i2c_master_write_to_device</ span > < span class ="p "> (</ span > < span class ="n "> I2C_NUM</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> dev_addr</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> data_len</ span > < span class ="p "> ,</ span >
197
- < span class ="w "> </ span > < span class ="n "> I2C_TIMEOUT_MS</ span > < span class ="w "> </ span > < span class ="o "> /</ span > < span class ="w "> </ span > < span class ="n "> portTICK_PERIOD_MS</ span > < span class ="p "> );</ span >
198
- < span class ="w "> </ span > < span class ="k "> return</ span > < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> ==</ span > < span class ="w "> </ span > < span class ="n "> ESP_OK</ span > < span class ="p "> ;</ span >
199
- < span class ="w "> </ span > < span class ="p "> };</ span >
200
- < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> ads_read</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="p "> [](</ span > < span class ="kt "> uint8_t</ span > < span class ="w "> </ span > < span class ="n "> dev_addr</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kt "> uint8_t</ span > < span class ="w "> </ span > < span class ="o "> *</ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="kt "> size_t</ span > < span class ="w "> </ span > < span class ="n "> data_len</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
201
- < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> i2c_master_read_from_device</ span > < span class ="p "> (</ span > < span class ="n "> I2C_NUM</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> dev_addr</ span > < span class ="p "> ,</ span >
202
- < span class ="w "> </ span > < span class ="n "> data</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> data_len</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> I2C_TIMEOUT_MS</ span > < span class ="w "> </ span > < span class ="o "> /</ span > < span class ="w "> </ span > < span class ="n "> portTICK_PERIOD_MS</ span > < span class ="p "> );</ span >
203
- < span class ="w "> </ span > < span class ="k "> return</ span > < span class ="w "> </ span > < span class ="n "> err</ span > < span class ="w "> </ span > < span class ="o "> ==</ span > < span class ="w "> </ span > < span class ="n "> ESP_OK</ span > < span class ="p "> ;</ span >
204
- < span class ="w "> </ span > < span class ="p "> };</ span >
179
+ < span class ="w "> </ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> I2c</ span > < span class ="w "> </ span > < span class ="n "> i2c</ span > < span class ="p "> ({</ span >
180
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> port</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> I2C_NUM_1</ span > < span class ="p "> ,</ span >
181
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> sda_io_num</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="p "> (</ span > < span class ="n "> gpio_num_t</ span > < span class ="p "> )</ span > < span class ="n "> CONFIG_EXAMPLE_I2C_SDA_GPIO</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="c1 "> // pin 3 on the joybonnet</ span >
182
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> scl_io_num</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="p "> (</ span > < span class ="n "> gpio_num_t</ span > < span class ="p "> )</ span > < span class ="n "> CONFIG_EXAMPLE_I2C_SCL_GPIO</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="c1 "> // pin 5 on the joybonnet</ span >
183
+ < span class ="w "> </ span > < span class ="p "> });</ span >
205
184
< span class ="w "> </ span > < span class ="c1 "> // make the actual ads class</ span >
206
185
< span class ="w "> </ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> Ads1x15</ span > < span class ="w "> </ span > < span class ="nf "> ads</ span > < span class ="p "> (</ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> Ads1x15</ span > < span class ="o "> ::</ span > < span class ="n "> Ads1015Config</ span > < span class ="p "> {</ span >
207
- < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> device_address</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> Ads1x15</ span > < span class ="o "> ::</ span > < span class ="n "> DEFAULT_ADDRESS</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> write</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> ads_write</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> read</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> ads_read</ span > < span class ="p "> });</ span >
186
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> device_address</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> Ads1x15</ span > < span class ="o "> ::</ span > < span class ="n "> DEFAULT_ADDRESS</ span > < span class ="p "> ,</ span >
187
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> write</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> bind</ span > < span class ="p "> (</ span > < span class ="o "> &</ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> I2c</ span > < span class ="o "> ::</ span > < span class ="n "> write</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="o "> &</ span > < span class ="n "> i2c</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _1</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _2</ span > < span class ="p "> ,</ span >
188
+ < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _3</ span > < span class ="p "> ),</ span >
189
+ < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="n "> read</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> bind</ span > < span class ="p "> (</ span > < span class ="o "> &</ span > < span class ="n "> espp</ span > < span class ="o "> ::</ span > < span class ="n "> I2c</ span > < span class ="o "> ::</ span > < span class ="n "> read</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="o "> &</ span > < span class ="n "> i2c</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _1</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _2</ span > < span class ="p "> ,</ span >
190
+ < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> placeholders</ span > < span class ="o "> ::</ span > < span class ="n "> _3</ span > < span class ="p "> )});</ span >
208
191
< span class ="w "> </ span > < span class ="c1 "> // make the task which will get the raw data from the I2C ADC</ span >
209
192
< span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> ads_read_task_fn</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="p "> [</ span > < span class ="o "> &</ span > < span class ="n "> ads</ span > < span class ="p "> ](</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> mutex</ span > < span class ="w "> </ span > < span class ="o "> &</ span > < span class ="n "> m</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> condition_variable</ span > < span class ="w "> </ span > < span class ="o "> &</ span > < span class ="n "> cv</ span > < span class ="p "> )</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
210
193
< span class ="w "> </ span > < span class ="k "> static</ span > < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> start</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> chrono</ span > < span class ="o "> ::</ span > < span class ="n "> high_resolution_clock</ span > < span class ="o "> ::</ span > < span class ="n "> now</ span > < span class ="p "> ();</ span >
0 commit comments