| 
									
										
										
										
											2021-05-24 02:09:38 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: Apache-2.0 | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-25 22:19:48 +08:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "esp_err.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief For I2S dma to claim the usage of ADC1. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2020-02-25 22:19:48 +08:00
										 |  |  |  * Other tasks will be forbidden to use ADC1 between ``adc1_dma_mode_acquire`` and ``adc1_i2s_release``. | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  |  * The I2S module may have to wait for a short time for the current conversion (if exist) to finish. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @return | 
					
						
							|  |  |  |  *      - ESP_OK success | 
					
						
							|  |  |  |  *      - ESP_ERR_TIMEOUT reserved for future use. Currently the function will wait until success. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2020-02-25 22:19:48 +08:00
										 |  |  | esp_err_t adc1_dma_mode_acquire(void); | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief For ADC1 to claim the usage of ADC1. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2020-02-25 22:19:48 +08:00
										 |  |  |  * Other tasks will be forbidden to use ADC1 between ``adc1_rtc_mode_acquire`` and ``adc1_i2s_release``. | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  |  * The ADC1 may have to wait for some time for the I2S read operation to finish. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @return | 
					
						
							|  |  |  |  *      - ESP_OK success | 
					
						
							|  |  |  |  *      - ESP_ERR_TIMEOUT reserved for future use. Currently the function will wait until success. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2020-02-25 22:19:48 +08:00
										 |  |  | esp_err_t adc1_rtc_mode_acquire(void); | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief to let other tasks use the ADC1 when I2S is not work. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Other tasks will be forbidden to use ADC1 between ``adc1_adc/i2s_mode_acquire`` and ``adc1_i2s_release``. | 
					
						
							|  |  |  |  * Call this function to release the occupation of ADC1 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @return always return ESP_OK. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2019-07-16 16:33:30 +07:00
										 |  |  | esp_err_t adc1_lock_release(void); | 
					
						
							| 
									
										
										
										
											2017-12-08 20:07:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |