parent
							
								
									5eda278177
								
							
						
					
					
						commit
						a9bd39de66
					
				| @ -48,6 +48,7 @@ static uint8_t __analogVRefPin = 0; | |||||||
| static uint8_t __analogAttenuation = 3;//11db
 | static uint8_t __analogAttenuation = 3;//11db
 | ||||||
| static uint8_t __analogWidth = 3;//12 bits
 | static uint8_t __analogWidth = 3;//12 bits
 | ||||||
| static uint8_t __analogClockDiv = 1; | static uint8_t __analogClockDiv = 1; | ||||||
|  | static adc_attenuation_t __pin_attenuation[SOC_GPIO_PIN_COUNT]; | ||||||
| 
 | 
 | ||||||
| void __analogSetClockDiv(uint8_t clockDiv){ | void __analogSetClockDiv(uint8_t clockDiv){ | ||||||
|     if(!clockDiv){ |     if(!clockDiv){ | ||||||
| @ -86,6 +87,9 @@ void __analogInit(){ | |||||||
| #if CONFIG_IDF_TARGET_ESP32 | #if CONFIG_IDF_TARGET_ESP32 | ||||||
|     __analogSetWidth(__analogWidth + 9);//in bits
 |     __analogSetWidth(__analogWidth + 9);//in bits
 | ||||||
| #endif | #endif | ||||||
|  |     for(int i=0; i<SOC_GPIO_PIN_COUNT; i++){ | ||||||
|  |         __pin_attenuation[i] = ADC_ATTENDB_MAX; | ||||||
|  |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void __analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation) | void __analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation) | ||||||
| @ -100,6 +104,7 @@ void __analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation) | |||||||
|         adc1_config_channel_atten(channel, attenuation); |         adc1_config_channel_atten(channel, attenuation); | ||||||
|     } |     } | ||||||
|     __analogInit(); |     __analogInit(); | ||||||
|  |     __pin_attenuation[pin] = attenuation; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool __adcAttachPin(uint8_t pin){ | bool __adcAttachPin(uint8_t pin){ | ||||||
| @ -129,7 +134,7 @@ bool __adcAttachPin(uint8_t pin){ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|     pinMode(pin, ANALOG); |     pinMode(pin, ANALOG); | ||||||
|     __analogSetPinAttenuation(pin, __analogAttenuation); |     __analogSetPinAttenuation(pin, (__pin_attenuation[pin] != ADC_ATTENDB_MAX)?__pin_attenuation[pin]:__analogAttenuation); | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -30,7 +30,8 @@ typedef enum { | |||||||
|     ADC_0db, |     ADC_0db, | ||||||
|     ADC_2_5db, |     ADC_2_5db, | ||||||
|     ADC_6db, |     ADC_6db, | ||||||
|     ADC_11db |     ADC_11db, | ||||||
|  |     ADC_ATTENDB_MAX | ||||||
| } adc_attenuation_t; | } adc_attenuation_t; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user