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
*/
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
*
/*---------------------------------------------------------------
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:
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;
/*---------------------------------------------------------------
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);