]> granicus.if.org Git - esp-idf/commitdiff
feat(rtc): open adc*(dac)_pad_get_io_num functions to public.
authormichael <xiaoxufeng@espressif.com>
Wed, 13 Sep 2017 09:27:45 +0000 (17:27 +0800)
committermichael <xiaoxufeng@espressif.com>
Tue, 24 Oct 2017 04:06:14 +0000 (12:06 +0800)
components/driver/include/driver/adc.h
components/driver/include/driver/dac.h
components/driver/rtc_module.c

index 799001ddbbc8b58c2eb3c61d5abbec15715f061b..cbd2e28df4d8079909518024d1606d10dfb02667 100644 (file)
@@ -112,6 +112,19 @@ typedef enum {
     ADC_I2S_DATA_SRC_MAX,
 } adc_i2s_source_t;
 
+/**
+ * @brief Get the gpio number of a specific ADC1 channel.
+ * 
+ * @param channel Channel to get the gpio number
+ * 
+ * @param gpio_num output buffer to hold the gpio number
+ * 
+ * @return 
+ *   - ESP_OK if success
+ *   - ESP_ERR_INVALID_ARG if channal not valid 
+ */
+esp_err_t adc1_pad_get_io_num(adc1_channel_t channel, gpio_num_t *gpio_num);
+
 /**
  * @brief Configure ADC1 capture width, meanwhile enable output invert for ADC1.
  * The configuration is for all channels of ADC1
@@ -273,6 +286,19 @@ void adc1_ulp_enable();
  */
 int hall_sensor_read();
 
+/**
+ * @brief Get the gpio number of a specific ADC2 channel.
+ * 
+ * @param channel Channel to get the gpio number
+ * 
+ * @param gpio_num output buffer to hold the gpio number
+ * 
+ * @return 
+ *   - ESP_OK if success
+ *   - ESP_ERR_INVALID_ARG if channal not valid 
+ */
+esp_err_t adc2_pad_get_io_num(adc2_channel_t channel, gpio_num_t *gpio_num);
+
 /**
  *  @brief Output ADC2 reference voltage to gpio 25 or 26 or 27
  *
index a5563bb821f594509e25e1ed705d1d96b790ae63..f921d98f146e9f7872f3eb68f06284a22b12cbda 100644 (file)
@@ -29,6 +29,19 @@ typedef enum {
     DAC_CHANNEL_MAX,
 } dac_channel_t;
 
+/**
+ * @brief Get the gpio number of a specific DAC channel.
+ * 
+ * @param channel Channel to get the gpio number
+ * 
+ * @param gpio_num output buffer to hold the gpio number
+ * 
+ * @return 
+ *   - ESP_OK if success
+ *   - ESP_ERR_INVALID_ARG if channal not valid 
+ */
+esp_err_t dac_pad_get_io_num(dac_channel_t channel, gpio_num_t *gpio_num);
+
 /** @cond */
 /**
   * @brief  Set DAC output voltage.
index 75561be779a57f28aa8621b7cde57dc7592aef99..749feda29deaae44ca6e98f0b8f54d63ae15fbdc 100644 (file)
@@ -905,9 +905,9 @@ esp_err_t touch_pad_filter_delete()
 /*---------------------------------------------------------------
                     ADC
 ---------------------------------------------------------------*/
-static esp_err_t adc1_pad_get_io_num(adc1_channel_t channel, gpio_num_t *gpio_num)
+esp_err_t adc1_pad_get_io_num(adc1_channel_t channel, gpio_num_t *gpio_num)
 {
-    RTC_MODULE_CHECK(channel < ADC1_CHANNEL_MAX, "ADC Channel Err", ESP_ERR_INVALID_ARG);
+    RTC_MODULE_CHECK(channel < ADC1_CHANNEL_MAX, "ADC1 Channel Err", ESP_ERR_INVALID_ARG);
 
     switch (channel) {
     case ADC1_CHANNEL_0:
@@ -1263,6 +1263,51 @@ void adc1_ulp_enable(void)
     portEXIT_CRITICAL(&rtc_spinlock);
 }
 
+/*---------------------------------------------------------------
+                    ADC2
+---------------------------------------------------------------*/
+esp_err_t adc2_pad_get_io_num(adc2_channel_t channel, gpio_num_t *gpio_num)
+{
+    RTC_MODULE_CHECK(channel < ADC2_CHANNEL_MAX, "ADC2 Channel Err", ESP_ERR_INVALID_ARG);
+
+    switch (channel) {
+    case ADC2_CHANNEL_0:
+        *gpio_num = ADC2_CHANNEL_0_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_1:
+        *gpio_num = ADC2_CHANNEL_1_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_2:
+        *gpio_num = ADC2_CHANNEL_2_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_3:
+        *gpio_num = ADC2_CHANNEL_3_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_4:
+        *gpio_num = ADC2_CHANNEL_4_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_5:
+        *gpio_num = ADC2_CHANNEL_5_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_6:
+        *gpio_num = ADC2_CHANNEL_6_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_7:
+        *gpio_num = ADC2_CHANNEL_7_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_8:
+        *gpio_num = ADC2_CHANNEL_8_GPIO_NUM;
+        break;
+    case ADC2_CHANNEL_9:
+        *gpio_num = ADC2_CHANNEL_9_GPIO_NUM;
+        break;
+    default:
+        return ESP_ERR_INVALID_ARG;
+    }
+
+    return ESP_OK;
+}
+
 esp_err_t adc2_vref_to_gpio(gpio_num_t gpio)
 {
     int channel;
@@ -1303,7 +1348,7 @@ esp_err_t adc2_vref_to_gpio(gpio_num_t gpio)
 /*---------------------------------------------------------------
                     DAC
 ---------------------------------------------------------------*/
-static esp_err_t dac_pad_get_io_num(dac_channel_t channel, gpio_num_t *gpio_num)
+esp_err_t dac_pad_get_io_num(dac_channel_t channel, gpio_num_t *gpio_num)
 {
     RTC_MODULE_CHECK((channel >= DAC_CHANNEL_1) && (channel < DAC_CHANNEL_MAX), DAC_ERR_STR_CHANNEL_ERROR, ESP_ERR_INVALID_ARG);
     RTC_MODULE_CHECK(gpio_num, "Param null", ESP_ERR_INVALID_ARG);