mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 13:09:38 +00:00 
			
		
		
		
	esp_adc_cal: move esp_adc_cal_get_voltage into common source file
This commit is contained in:
		| @@ -1,16 +1,8 @@ | ||||
| // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
|  | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| /* | ||||
|  * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD | ||||
|  * | ||||
|  * SPDX-License-Identifier: Apache-2.0 | ||||
|  */ | ||||
|  | ||||
| #include <stdint.h> | ||||
| #include "esp_types.h" | ||||
| @@ -82,12 +74,6 @@ | ||||
| #define LUT_HIGH_THRESH                 (LUT_LOW_THRESH + LUT_ADC_STEP_SIZE) | ||||
| #define ADC_12_BIT_RES                  4096 | ||||
|  | ||||
| #define ADC_CAL_CHECK(cond, ret) ({                                         \ | ||||
|             if(!(cond)){                                                    \ | ||||
|                 return ret;                                                 \ | ||||
|             }                                                               \ | ||||
| }) | ||||
|  | ||||
| /* ------------------------ Characterization Constants ---------------------- */ | ||||
| static const uint32_t adc1_tp_atten_scale[4] = {65504, 86975, 120389, 224310}; | ||||
| static const uint32_t adc2_tp_atten_scale[4] = {65467, 86861, 120416, 224708}; | ||||
| @@ -366,27 +352,3 @@ uint32_t esp_adc_cal_raw_to_voltage(uint32_t adc_reading, const esp_adc_cal_char | ||||
|         return calculate_voltage_linear(adc_reading, chars->coeff_a, chars->coeff_b); | ||||
|     } | ||||
| } | ||||
|  | ||||
| esp_err_t esp_adc_cal_get_voltage(adc_channel_t channel, | ||||
|                                   const esp_adc_cal_characteristics_t *chars, | ||||
|                                   uint32_t *voltage) | ||||
| { | ||||
|     //Check parameters | ||||
|     ADC_CAL_CHECK(chars != NULL, ESP_ERR_INVALID_ARG); | ||||
|     ADC_CAL_CHECK(voltage != NULL, ESP_ERR_INVALID_ARG); | ||||
|  | ||||
|     int adc_reading; | ||||
|     if (chars->adc_num == ADC_UNIT_1) { | ||||
|         //Check channel is valid on ADC1 | ||||
|         ADC_CAL_CHECK((adc1_channel_t)channel < ADC1_CHANNEL_MAX, ESP_ERR_INVALID_ARG); | ||||
|         adc_reading = adc1_get_raw(channel); | ||||
|     } else { | ||||
|         //Check channel is valid on ADC2 | ||||
|         ADC_CAL_CHECK((adc2_channel_t)channel < ADC2_CHANNEL_MAX, ESP_ERR_INVALID_ARG); | ||||
|         if (adc2_get_raw(channel, chars->bit_width, &adc_reading) != ESP_OK) { | ||||
|             return ESP_ERR_TIMEOUT;     //Timed out waiting for ADC2 | ||||
|         } | ||||
|     } | ||||
|     *voltage = esp_adc_cal_raw_to_voltage((uint32_t)adc_reading, chars); | ||||
|     return ESP_OK; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ivan Grokhotkov
					Ivan Grokhotkov