fix port{Input,Output,Mode}Register macros for chips with <=32 pins (#5402)
Closes https://github.com/espressif/arduino-esp32/issues/5378
This commit is contained in:
		
							parent
							
								
									a9bd39de66
								
							
						
					
					
						commit
						eac8b2def3
					
				| @ -99,13 +99,23 @@ | ||||
| #define bit(b) (1UL << (b)) | ||||
| #define _BV(b) (1UL << (b)) | ||||
| 
 | ||||
| #define digitalPinToPort(pin)       (((pin)>31)?1:0) | ||||
| #define digitalPinToBitMask(pin)    (1UL << (((pin)>31)?((pin)-32):(pin))) | ||||
| #define digitalPinToTimer(pin)      (0) | ||||
| #define analogInPinToBit(P)         (P) | ||||
| #if SOC_GPIO_PIN_COUNT <= 32 | ||||
| #define digitalPinToPort(pin)       (0) | ||||
| #define digitalPinToBitMask(pin)    (1UL << (pin)) | ||||
| #define portOutputRegister(port)    ((volatile uint32_t*)GPIO_OUT_REG) | ||||
| #define portInputRegister(port)     ((volatile uint32_t*)GPIO_IN_REG) | ||||
| #define portModeRegister(port)      ((volatile uint32_t*)GPIO_ENABLE_REG) | ||||
| #elif SOC_GPIO_PIN_COUNT <= 64 | ||||
| #define digitalPinToPort(pin)       (((pin)>31)?1:0) | ||||
| #define digitalPinToBitMask(pin)    (1UL << (((pin)>31)?((pin)-32):(pin))) | ||||
| #define portOutputRegister(port)    ((volatile uint32_t*)((port)?GPIO_OUT1_REG:GPIO_OUT_REG)) | ||||
| #define portInputRegister(port)     ((volatile uint32_t*)((port)?GPIO_IN1_REG:GPIO_IN_REG)) | ||||
| #define portModeRegister(port)      ((volatile uint32_t*)((port)?GPIO_ENABLE1_REG:GPIO_ENABLE_REG)) | ||||
| #else | ||||
| #error SOC_GPIO_PIN_COUNT > 64 not implemented | ||||
| #endif | ||||
| 
 | ||||
| #define NOT_A_PIN -1 | ||||
| #define NOT_A_PORT -1 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user